diff options
| author | gingerBill <bill@gingerbill.org> | 2022-09-17 10:26:57 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-09-17 10:26:57 +0100 |
| commit | 117d32dfc476bffdcc526003538710794874018d (patch) | |
| tree | 37fdc4c0921d613b8d6157f446ddc7ff801d82ae /src/llvm_backend.cpp | |
| parent | 320b84df4f7f2af868775951f89d19d353ef654e (diff) | |
Enforce constant pointer cast on global procedure variable initialization `x := proc() {}`
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 4eb343fa7..aa901d22f 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -780,6 +780,9 @@ lbProcedure *lb_create_startup_runtime(lbModule *main_module, lbProcedure *start var->init = init; } else if (lb_is_const_or_global(init)) { if (!var->is_initialized) { + if (is_type_proc(init.type)) { + init.value = LLVMConstPointerCast(init.value, lb_type(p->module, init.type)); + } LLVMSetInitializer(var->var.value, init.value); var->is_initialized = true; continue; |