From 17c9e1d76b3ff4a3cb2edb3dc0b6b070adaef91e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 28 Sep 2025 22:11:46 +0100 Subject: [PATCH] Fix global initialization when non was set --- src/llvm_backend.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 8ac68d9bf..873f67cde 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -3255,6 +3255,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { } GB_ASSERT(e->kind == Entity_Variable); + bool is_foreign = e->Variable.is_foreign; bool is_export = e->Variable.is_export; @@ -3269,7 +3270,6 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { g.type = alloc_type_pointer(e->type); g.value = LLVMAddGlobal(m->mod, lb_type(m, e->type), alloc_cstring(permanent_allocator(), name)); - if (decl->init_expr != nullptr) { TypeAndValue tav = type_and_value_of_expr(decl->init_expr); if (!is_type_any(e->type) && !is_type_union(e->type)) { @@ -3313,7 +3313,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { LLVMSetDLLStorageClass(g.value, LLVMDLLImportStorageClass); LLVMSetExternallyInitialized(g.value, true); lb_add_foreign_library_path(m, e->Variable.foreign_library); - } else if (!var.is_initialized) { + } else if (LLVMGetInitializer(g.value) == nullptr) { LLVMSetInitializer(g.value, LLVMConstNull(lb_type(m, e->type))); } if (is_export) {