mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-01 10:52:19 +00:00
Use more predictable object name
This commit is contained in:
@@ -2559,17 +2559,15 @@ gb_internal String lb_filepath_ll_for_module(lbModule *m) {
|
||||
build_context.build_paths[BuildPath_Output].name
|
||||
);
|
||||
|
||||
if (m->file) {
|
||||
char buf[32] = {};
|
||||
isize n = gb_snprintf(buf, gb_size_of(buf), "-%u", m->file->id);
|
||||
String suffix = make_string((u8 *)buf, n-1);
|
||||
path = concatenate_strings(permanent_allocator(), path, suffix);
|
||||
} else if (m->pkg) {
|
||||
path = concatenate3_strings(permanent_allocator(), path, STR_LIT("-"), m->pkg->name);
|
||||
} else if (USE_SEPARATE_MODULES) {
|
||||
path = concatenate_strings(permanent_allocator(), path, STR_LIT("-builtin"));
|
||||
}
|
||||
path = concatenate_strings(permanent_allocator(), path, STR_LIT(".ll"));
|
||||
GB_ASSERT(m->module_name != nullptr);
|
||||
String s = make_string_c(m->module_name);
|
||||
String prefix = str_lit("odin_package-");
|
||||
GB_ASSERT(string_starts_with(s, prefix));
|
||||
s.text += prefix.len;
|
||||
s.len -= prefix.len;
|
||||
|
||||
path = concatenate_strings(permanent_allocator(), path, s);
|
||||
path = concatenate_strings(permanent_allocator(), s, STR_LIT(".ll"));
|
||||
|
||||
return path;
|
||||
}
|
||||
@@ -2592,14 +2590,16 @@ gb_internal String lb_filepath_obj_for_module(lbModule *m) {
|
||||
path = gb_string_appendc(path, "/");
|
||||
path = gb_string_append_length(path, name.text, name.len);
|
||||
|
||||
if (m->file) {
|
||||
char buf[32] = {};
|
||||
isize n = gb_snprintf(buf, gb_size_of(buf), "-%u", m->file->id);
|
||||
String suffix = make_string((u8 *)buf, n-1);
|
||||
path = gb_string_append_length(path, suffix.text, suffix.len);
|
||||
} else if (m->pkg) {
|
||||
path = gb_string_appendc(path, "-");
|
||||
path = gb_string_append_length(path, m->pkg->name.text, m->pkg->name.len);
|
||||
{
|
||||
|
||||
GB_ASSERT(m->module_name != nullptr);
|
||||
String s = make_string_c(m->module_name);
|
||||
String prefix = str_lit("odin_package");
|
||||
GB_ASSERT(string_starts_with(s, prefix));
|
||||
s.text += prefix.len;
|
||||
s.len -= prefix.len;
|
||||
|
||||
path = gb_string_append_length(path, s.text, s.len);
|
||||
}
|
||||
|
||||
if (use_temporary_directory) {
|
||||
@@ -3153,7 +3153,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) {
|
||||
LLVMValueRef g = LLVMAddGlobal(m->mod, internal_llvm_type, LB_TYPE_INFO_DATA_NAME);
|
||||
LLVMSetInitializer(g, LLVMConstNull(internal_llvm_type));
|
||||
LLVMSetLinkage(g, USE_SEPARATE_MODULES ? LLVMExternalLinkage : LLVMInternalLinkage);
|
||||
LLVMSetUnnamedAddress(g, LLVMGlobalUnnamedAddr);
|
||||
// LLVMSetUnnamedAddress(g, LLVMGlobalUnnamedAddr);
|
||||
LLVMSetGlobalConstant(g, true);
|
||||
|
||||
lbValue value = {};
|
||||
|
||||
@@ -221,7 +221,7 @@ gb_internal void lb_loop_end(lbProcedure *p, lbLoopData const &data) {
|
||||
|
||||
gb_internal void lb_make_global_private_const(LLVMValueRef global_data) {
|
||||
LLVMSetLinkage(global_data, LLVMLinkerPrivateLinkage);
|
||||
LLVMSetUnnamedAddress(global_data, LLVMGlobalUnnamedAddr);
|
||||
// LLVMSetUnnamedAddress(global_data, LLVMGlobalUnnamedAddr);
|
||||
LLVMSetGlobalConstant(global_data, true);
|
||||
}
|
||||
gb_internal void lb_make_global_private_const(lbAddr const &addr) {
|
||||
@@ -2786,6 +2786,7 @@ gb_internal lbValue lb_generate_anonymous_proc_lit(lbModule *m, String const &pr
|
||||
|
||||
|
||||
gb_internal lbAddr lb_add_global_generated_with_name(lbModule *m, Type *type, lbValue value, String name, Entity **entity_) {
|
||||
GB_ASSERT(name.len != 0);
|
||||
GB_ASSERT(type != nullptr);
|
||||
type = default_type(type);
|
||||
|
||||
@@ -2817,12 +2818,14 @@ gb_internal lbAddr lb_add_global_generated_from_procedure(lbProcedure *p, Type *
|
||||
GB_ASSERT(type != nullptr);
|
||||
type = default_type(type);
|
||||
|
||||
u32 index = ++p->global_generated_index;
|
||||
static std::atomic<u32> global_index;
|
||||
u32 index = ++global_index;
|
||||
// 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_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));
|
||||
@@ -2938,7 +2941,7 @@ gb_internal lbValue lb_generate_global_array(lbModule *m, Type *elem_type, i64 c
|
||||
g.type = alloc_type_pointer(t);
|
||||
LLVMSetInitializer(g.value, LLVMConstNull(lb_type(m, t)));
|
||||
LLVMSetLinkage(g.value, LLVMPrivateLinkage);
|
||||
LLVMSetUnnamedAddress(g.value, LLVMGlobalUnnamedAddr);
|
||||
// LLVMSetUnnamedAddress(g.value, LLVMGlobalUnnamedAddr);
|
||||
string_map_set(&m->members, s, g);
|
||||
return g;
|
||||
}
|
||||
|
||||
@@ -2112,7 +2112,7 @@ gb_internal lbAddr lb_handle_objc_find_or_register_selector(lbProcedure *p, Stri
|
||||
}
|
||||
|
||||
if (!entity) {
|
||||
gbString global_name = gb_string_make(temporary_allocator(), "__$objc_selector-");
|
||||
gbString global_name = gb_string_make(temporary_allocator(), "__$objc_SEL$");
|
||||
global_name = gb_string_append_length(global_name, name.text, name.len);
|
||||
|
||||
lbAddr default_addr = lb_add_global_generated_with_name(
|
||||
@@ -2175,7 +2175,7 @@ gb_internal lbAddr lb_handle_objc_find_or_register_class(lbProcedure *p, String
|
||||
}
|
||||
|
||||
if (!entity) {
|
||||
gbString global_name = gb_string_make(temporary_allocator(), "__$objc_class-");
|
||||
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, {},
|
||||
|
||||
Reference in New Issue
Block a user