aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_general.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-09-18 15:10:29 +0100
committergingerBill <bill@gingerbill.org>2021-09-18 15:10:29 +0100
commit71f2289c20c55ced92225fea97df66b1e53f3c37 (patch)
tree978d666b054b9d7b616ccb302e3034829dce1a5e /src/llvm_backend_general.cpp
parent05ac2002e0296c3acccca1d8cffaafb002e43120 (diff)
Fix #1174
Diffstat (limited to 'src/llvm_backend_general.cpp')
-rw-r--r--src/llvm_backend_general.cpp6
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) {