aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2025-02-25 14:35:54 +0000
committergingerBill <bill@gingerbill.org>2025-02-25 14:35:54 +0000
commit5aafbc7f3000d1a24e3097ae37ac3900ffd9d187 (patch)
treeb26492572b01f816c2993998e9d1128201324945 /src
parentf9d85a731161c2285844be520e48f8cf8d41bc78 (diff)
Use more deterministic module names
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend.hpp3
-rw-r--r--src/llvm_backend_general.cpp11
2 files changed, 9 insertions, 5 deletions
diff --git a/src/llvm_backend.hpp b/src/llvm_backend.hpp
index d18395127..02b8094a1 100644
--- a/src/llvm_backend.hpp
+++ b/src/llvm_backend.hpp
@@ -182,8 +182,6 @@ struct lbModule {
StringMap<lbProcedure *> gen_procs; // key is the canonicalized name
- std::atomic<u32> nested_type_name_guid;
-
Array<lbProcedure *> procedures_to_generate;
Array<Entity *> global_procedures_to_create;
Array<Entity *> global_types_to_create;
@@ -229,7 +227,6 @@ struct lbGenerator : LinkerData {
PtrMap<Ast *, lbProcedure *> anonymous_proc_lits;
std::atomic<u32> global_array_index;
- std::atomic<u32> global_generated_index;
isize used_module_count;
diff --git a/src/llvm_backend_general.cpp b/src/llvm_backend_general.cpp
index 54c1f5c38..b994ec330 100644
--- a/src/llvm_backend_general.cpp
+++ b/src/llvm_backend_general.cpp
@@ -20,7 +20,13 @@ gb_internal void lb_init_module(lbModule *m, Checker *c) {
gbString module_name = gb_string_make(heap_allocator(), "odin_package");
if (m->file) {
- module_name = gb_string_append_fmt(module_name, "-%u", m->file->id+1);
+ if (m->pkg) {
+ module_name = gb_string_appendc(module_name, "-");
+ module_name = gb_string_append_length(module_name, m->pkg->name.text, m->pkg->name.len);
+ }
+ module_name = gb_string_appendc(module_name, "-");
+ String filename = filename_from_path(m->file->filename);
+ module_name = gb_string_append_length(module_name, filename.text, filename.len);
} else if (m->pkg) {
module_name = gb_string_appendc(module_name, "-");
module_name = gb_string_append_length(module_name, m->pkg->name.text, m->pkg->name.len);
@@ -2814,10 +2820,11 @@ gb_internal lbAddr lb_add_global_generated_from_procedure(lbProcedure *p, Type *
u32 index = ++p->global_generated_index;
gbString s = gb_string_make(temporary_allocator(), "ggv$");
+ s = gb_string_appendc(s, p->module->module_name);
+ s = gb_string_appendc(s, "$");
s = gb_string_append_length(s, p->name.text, p->name.len);
s = gb_string_append_fmt(s, "$%u", index);
-
String name = make_string(cast(u8 const *)s, gb_string_length(s));
return lb_add_global_generated_with_name(p->module, type, value, name);
}