aboutsummaryrefslogtreecommitdiff
path: root/src/types.cpp
diff options
context:
space:
mode:
authorMorgan <mnordberg01@gmail.com>2025-12-01 16:24:57 +0100
committerMorgan <mnordberg01@gmail.com>2025-12-01 16:24:57 +0100
commitb3ef77e9dd93bd0c10fa543f67bc26fe1050cf75 (patch)
tree0902632259c6ed2dfee33dd8633c2a39de6fa9db /src/types.cpp
parentac61f083fae80197db37d286ac1259d32b587ba9 (diff)
undetected type declaration cycles work-around
Diffstat (limited to 'src/types.cpp')
-rw-r--r--src/types.cpp3
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);