diff options
Diffstat (limited to 'src/entity.cpp')
| -rw-r--r-- | src/entity.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/entity.cpp b/src/entity.cpp index 55aca8069..070b05462 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -170,7 +170,7 @@ struct Entity { Type * type; std::atomic<Ast *> identifier; // Can be nullptr DeclInfo * decl_info; - DeclInfo * parent_proc_decl; // nullptr if in file/global scope + std::atomic<DeclInfo *> parent_proc_decl; // nullptr if in file/global scope AstFile * file; AstPackage *pkg; @@ -181,11 +181,11 @@ struct Entity { Entity * aliased_of; union { - struct lbModule *code_gen_module; + std::atomic<struct lbModule *> code_gen_module; struct cgModule *cg_module; }; union { - struct lbProcedure *code_gen_procedure; + std::atomic<struct lbProcedure *> code_gen_procedure; struct cgProcedure *cg_procedure; }; @@ -370,7 +370,7 @@ gb_internal Entity *alloc_entity_using_variable(Entity *parent, Token token, Typ token.pos = parent->token.pos; Entity *entity = alloc_entity(Entity_Variable, parent->scope, token, type); entity->using_parent = parent; - entity->parent_proc_decl = parent->parent_proc_decl; + entity->parent_proc_decl.store(parent->parent_proc_decl, std::memory_order_relaxed); entity->using_expr = using_expr; entity->flags |= EntityFlag_Using; entity->flags |= EntityFlag_Used; |