diff options
| author | Morgan <mnordberg01@gmail.com> | 2025-12-01 16:24:57 +0100 |
|---|---|---|
| committer | Morgan <mnordberg01@gmail.com> | 2025-12-01 16:24:57 +0100 |
| commit | b3ef77e9dd93bd0c10fa543f67bc26fe1050cf75 (patch) | |
| tree | 0902632259c6ed2dfee33dd8633c2a39de6fa9db | |
| parent | ac61f083fae80197db37d286ac1259d32b587ba9 (diff) | |
undetected type declaration cycles work-around
| -rw-r--r-- | src/types.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/types.cpp b/src/types.cpp index eb20b8edf..0db2fe8aa 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -4278,6 +4278,9 @@ gb_internal i64 *type_set_offsets_of(Slice<Entity *> const &fields, bool is_pack gb_internal bool type_set_offsets(Type *t) { t = base_type(t); if (t->kind == Type_Struct) { + if (t->Struct.are_offsets_being_processed.load()) { + return true + } MUTEX_GUARD(&t->Struct.offset_mutex); if (!t->Struct.are_offsets_set) { t->Struct.are_offsets_being_processed.store(true); |