aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend_utility.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2025-02-25 14:29:14 +0000
committergingerBill <bill@gingerbill.org>2025-02-25 14:29:14 +0000
commitf9d85a731161c2285844be520e48f8cf8d41bc78 (patch)
treec4f94513578bb40405230707ee1fd440b05c5bb4 /src/llvm_backend_utility.cpp
parent22ab8935c414adf04d08d50e86867b7df141ef2c (diff)
Try to make globally generated variables deterministic in name
Diffstat (limited to 'src/llvm_backend_utility.cpp')
-rw-r--r--src/llvm_backend_utility.cpp15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/llvm_backend_utility.cpp b/src/llvm_backend_utility.cpp
index 0ba95bb1e..9624a78e6 100644
--- a/src/llvm_backend_utility.cpp
+++ b/src/llvm_backend_utility.cpp
@@ -2112,7 +2112,13 @@ gb_internal lbAddr lb_handle_objc_find_or_register_selector(lbProcedure *p, Stri
}
if (!entity) {
- lbAddr default_addr = lb_add_global_generated(default_module, t_objc_SEL, {}, &entity);
+ gbString global_name = gb_string_make(temporary_allocator(), "__$objc_selector-");
+ global_name = gb_string_append_length(global_name, name.text, name.len);
+
+ lbAddr default_addr = lb_add_global_generated_with_name(
+ default_module, t_objc_SEL, {},
+ make_string(cast(u8 const *)global_name, gb_string_length(global_name)),
+ &entity);
string_map_set(&default_module->objc_selectors, name, lbObjcRef{entity, default_addr});
}
@@ -2169,7 +2175,12 @@ gb_internal lbAddr lb_handle_objc_find_or_register_class(lbProcedure *p, String
}
if (!entity) {
- lbAddr default_addr = lb_add_global_generated(default_module, t_objc_Class, {}, &entity);
+ gbString global_name = gb_string_make(temporary_allocator(), "__$objc_class-");
+ global_name = gb_string_append_length(global_name, name.text, name.len);
+
+ lbAddr default_addr = lb_add_global_generated_with_name(default_module, t_objc_Class, {},
+ make_string(cast(u8 const *)global_name, gb_string_length(global_name)),
+ &entity);
string_map_set(&default_module->objc_classes, name, lbObjcRef{entity, default_addr});
}