diff options
| author | gingerBill <bill@gingerbill.org> | 2021-09-18 15:10:29 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-09-18 15:10:29 +0100 |
| commit | 71f2289c20c55ced92225fea97df66b1e53f3c37 (patch) | |
| tree | 978d666b054b9d7b616ccb302e3034829dce1a5e /src/llvm_backend_general.cpp | |
| parent | 05ac2002e0296c3acccca1d8cffaafb002e43120 (diff) | |
Fix #1174
Diffstat (limited to 'src/llvm_backend_general.cpp')
| -rw-r--r-- | src/llvm_backend_general.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp index b6959c425..8366e0b82 100644 --- a/src/llvm_backend_general.cpp +++ b/src/llvm_backend_general.cpp @@ -1667,6 +1667,8 @@ LLVMTypeRef lb_type_internal(lbModule *m, Type *type) { case Type_Struct: { + type_set_offsets(type); + if (type->Struct.is_raw_union) { unsigned field_count = 2; LLVMTypeRef *fields = gb_alloc_array(permanent_allocator(), LLVMTypeRef, field_count); @@ -1695,8 +1697,10 @@ LLVMTypeRef lb_type_internal(lbModule *m, Type *type) { i64 padding_offset = 0; for_array(i, type->Struct.fields) { + GB_ASSERT(type->Struct.offsets != nullptr); + Entity *field = type->Struct.fields[i]; - i64 padding = type->Struct.offsets[i]-padding_offset; + i64 padding = type->Struct.offsets[i] - padding_offset; LLVMTypeRef padding_type = nullptr; if (padding_offset == 0) { |