aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2025-03-01 15:19:46 +0000
committergingerBill <bill@gingerbill.org>2025-03-01 15:19:46 +0000
commit211680569f93db8896fafa9693158725925138fd (patch)
treefb340929714c89769decd5dfc361edf5c724ac8a /src/llvm_backend.cpp
parentbb20b03f2ee52d11cabc305b354a864b04a31778 (diff)
Fix for `-use-single-module`
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 9cf996e84..a9cca2695 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2562,9 +2562,10 @@ gb_internal String lb_filepath_ll_for_module(lbModule *m) {
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;
+ if (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"));
@@ -2595,14 +2596,16 @@ gb_internal String lb_filepath_obj_for_module(lbModule *m) {
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;
+ if (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) {
+ // NOTE(bill): this must be suffixed to ensure it is not conflicting with anything else in the temporary directory
path = gb_string_append_fmt(path, "-%p", m);
}