aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend.cpp4
-rw-r--r--src/llvm_backend_general.cpp1
2 files changed, 3 insertions, 2 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index b3364b89e..bc8056ec9 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -304,10 +304,10 @@ gb_internal lbValue lb_hasher_proc_for_type(lbModule *m, Type *type) {
return {(*found)->value, (*found)->type};
}
- static u32 proc_index = 0;
+ static std::atomic<u32> proc_index = 0;
char buf[32] = {};
- isize n = gb_snprintf(buf, 32, "__$hasher%u", ++proc_index);
+ isize n = gb_snprintf(buf, 32, "__$hasher%u", 1+proc_index.fetch_add(1));
char *str = gb_alloc_str_len(permanent_allocator(), buf, n-1);
String proc_name = make_string_c(str);
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index e7c9a0985..1dd36ba14 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -2619,6 +2619,7 @@ gb_internal lbValue lb_find_procedure_value_from_entity(lbModule *m, Entity *e)
lbProcedure *missing_proc = lb_create_procedure(m, e, ignore_body);
if (ignore_body) {
+ GB_ASSERT(other_module != nullptr);
mutex_lock(&other_module->values_mutex);
auto *found = map_get(&other_module->values, e);
if (found == nullptr) {