aboutsummaryrefslogtreecommitdiff
path: root/src/codegen.cpp
diff options
context:
space:
mode:
authorLemonBoy <thatlemon@gmail.com>2020-01-14 19:01:04 +0100
committerAndrew Kelley <andrew@ziglang.org>2020-01-14 14:57:03 -0500
commit505b9db9090c7decba68c7882b1330f48aff0c10 (patch)
tree24e46643cef2522f37b41af28cd0032d9871e200 /src/codegen.cpp
parentaf2ede4d96d5dd01a9db2f6fbfbe430214beaf63 (diff)
downloadzig-505b9db9090c7decba68c7882b1330f48aff0c10.tar.gz
zig-505b9db9090c7decba68c7882b1330f48aff0c10.zip
Fix codegen error for some union initializers
Closes #3377
Diffstat (limited to 'src/codegen.cpp')
-rw-r--r--src/codegen.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/codegen.cpp b/src/codegen.cpp
index d64c191c93..9bab5fd878 100644
--- a/src/codegen.cpp
+++ b/src/codegen.cpp
@@ -7195,7 +7195,7 @@ check: switch (const_val->special) {
union_value_ref = LLVMGetUndef(union_type_ref);
make_unnamed_struct = false;
} else {
- uint64_t field_type_bytes = LLVMStoreSizeOfType(g->target_data_ref,
+ uint64_t field_type_bytes = LLVMABISizeOfType(g->target_data_ref,
get_llvm_type(g, payload_value->type));
uint64_t pad_bytes = type_entry->data.unionation.union_abi_size - field_type_bytes;
LLVMValueRef correctly_typed_value = gen_const_val(g, payload_value, "");
@@ -7235,7 +7235,7 @@ check: switch (const_val->special) {
uint64_t last_field_offset = LLVMOffsetOfElement(g->target_data_ref, LLVMTypeOf(result), 1);
uint64_t end_offset = last_field_offset +
LLVMStoreSizeOfType(g->target_data_ref, LLVMTypeOf(fields[1]));
- uint64_t expected_sz = LLVMStoreSizeOfType(g->target_data_ref, get_llvm_type(g, type_entry));
+ uint64_t expected_sz = LLVMABISizeOfType(g->target_data_ref, get_llvm_type(g, type_entry));
unsigned pad_sz = expected_sz - end_offset;
if (pad_sz != 0) {
fields[2] = LLVMGetUndef(LLVMArrayType(LLVMInt8Type(), pad_sz));