aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-11-04 12:40:50 +0000
committergingerBill <bill@gingerbill.org>2021-11-04 12:40:50 +0000
commit6ded538546cca4f1e50a011a64932f7f3c784cc2 (patch)
tree03ac73c9042cc45ab20da51a93de3f9bf6f8de0f /src/llvm_backend.cpp
parent3fa7dabaa87e99386e469bd5e4badab23f89aaef (diff)
`@(linkage=<string>)` for procedures and variables; `@(require)` for procedures; `package runtime` linkage improvements; Subsequence improvements to `lb_run_remove_unused_function_pass`
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index c0a7b60df..928efbb54 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1498,6 +1498,8 @@ void lb_generate_code(lbGenerator *gen) {
LLVMSetLinkage(g.value, LLVMInternalLinkage);
}
}
+ lb_set_linkage_from_entity_flags(m, g.value, e->flags);
+
if (e->Variable.link_section.len > 0) {
LLVMSetSection(g.value, alloc_cstring(permanent_allocator(), e->Variable.link_section));
}
@@ -1675,7 +1677,7 @@ void lb_generate_code(lbGenerator *gen) {
for_array(i, gen->modules.entries) {
lbModule *m = gen->modules.entries[i].value;
- lb_run_remove_unused_function_pass(m->mod);
+ lb_run_remove_unused_function_pass(m);
auto wd = gb_alloc_item(permanent_allocator(), lbLLVMModulePassWorkerData);
wd->m = m;