aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-06-12 12:52:17 +0100
committergingerBill <bill@gingerbill.org>2023-06-12 12:52:17 +0100
commita7f8c78358a0d7258a3175a82dbe8ebee008ea03 (patch)
treeb23386a2b806b1e1250d61244aef928389f38473 /src/llvm_backend.cpp
parent3a90b404252d5acb64f883eb987ae1d1c12d9b03 (diff)
Change how "$anon" mangling works to use an atomic value instead
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 34a401c33..01d18d868 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -787,7 +787,8 @@ gb_internal lbValue lb_generate_anonymous_proc_lit(lbModule *m, String const &pr
// parent$count
isize name_len = prefix_name.len + 1 + 8 + 1;
char *name_text = gb_alloc_array(permanent_allocator(), char, name_len);
- i32 name_id = cast(i32)m->gen->anonymous_proc_lits.count;
+ static std::atomic<i32> name_id;
+ name_id.fetch_add(1);
name_len = gb_snprintf(name_text, name_len, "%.*s$anon-%d", LIT(prefix_name), name_id);
String name = make_string((u8 *)name_text, name_len-1);