Browse Source

Change how "$anon" mangling works to use an atomic value instead

gingerBill 2 years ago
parent
commit
a7f8c78358
1 changed files with 2 additions and 1 deletions
  1. 2 1
      src/llvm_backend.cpp

+ 2 - 1
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);