|
@@ -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();
|
|
|
}
|