diff options
| author | gingerBill <bill@gingerbill.org> | 2021-08-19 17:38:18 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-08-19 17:38:18 +0100 |
| commit | 38841dd46e6bb5879200c0a8e2f879c8cfa005d6 (patch) | |
| tree | d742d0f758224110243741ae1d99f4d7e51ab3da /src/checker.cpp | |
| parent | e722af7f6126d821ec2847769b234ed18f61518c (diff) | |
Fix race condition from `add_entity_use` due to Entity.identifier
Diffstat (limited to 'src/checker.cpp')
| -rw-r--r-- | src/checker.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index 4ae5f5b1c..cd023998c 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -1297,9 +1297,9 @@ void add_entity_use(CheckerContext *c, Ast *identifier, Entity *entity) { if (identifier->kind != Ast_Ident) { return; } - if (entity->identifier == nullptr) { - entity->identifier = identifier; - } + Ast *empty_ident = nullptr; + entity->identifier.compare_exchange_strong(empty_ident, identifier); + identifier->Ident.entity = entity; if (c->info->allow_identifier_uses) { |