From d93cc18dacf7800972cab91053fc1ed3c68dd34b Mon Sep 17 00:00:00 2001 From: Laytan Date: Thu, 25 Apr 2024 00:19:48 +0200 Subject: fix packed gep loads with wrong alignment --- src/types.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/types.cpp') diff --git a/src/types.cpp b/src/types.cpp index 3ec05059f..55d083a9a 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -321,6 +321,7 @@ enum TypeFlag : u32 { TypeFlag_Polymorphic = 1<<1, TypeFlag_PolySpecialized = 1<<2, TypeFlag_InProcessOfCheckingPolymorphic = 1<<3, + TypeFlag_Packed = 1<<4, }; struct Type { @@ -3671,6 +3672,9 @@ gb_internal i64 type_align_of(Type *t) { if (t == nullptr) { return 1; } + if (t->flags & TypeFlag_Packed) { + return 1; + } if (t->kind != Type_Named && t->cached_align > 0) { return t->cached_align.load(); } -- cgit v1.2.3