aboutsummaryrefslogtreecommitdiff
path: root/src/llvm_backend.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2022-01-15 15:38:09 +0000
committergingerBill <bill@gingerbill.org>2022-01-15 15:38:09 +0000
commit6aa80ee8e4fc8f96c24e9881a5833f14c86eff05 (patch)
tree29e5756fd48200684f169abd38c4bb2164bf36a7 /src/llvm_backend.cpp
parente15f71466005ff84c6dc97cbfbd10d57f1193e7a (diff)
Correct `_start` as an entry point
Diffstat (limited to 'src/llvm_backend.cpp')
-rw-r--r--src/llvm_backend.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 1c3cf86ac..7a7f20f8d 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1420,13 +1420,16 @@ void lb_generate_code(lbGenerator *gen) {
if (e->Procedure.is_export ||
(e->Procedure.link_name.len > 0) ||
((e->scope->flags&ScopeFlag_File) && e->Procedure.link_name.len > 0)) {
- String link_name = e->Procedure.link_name;
- if (link_name == "main" ||
- link_name == "DllMain" ||
- link_name == "WinMain" ||
- link_name == "wWinMain" ||
- link_name == "mainCRTStartup") {
- already_has_entry_point = true;
+ String link_name = e->Procedure.link_name;
+ if (e->pkg->kind == Package_Runtime) {
+ if (link_name == "main" ||
+ link_name == "DllMain" ||
+ link_name == "WinMain" ||
+ link_name == "wWinMain" ||
+ link_name == "mainCRTStartup" ||
+ link_name == "_start") {
+ already_has_entry_point = true;
+ }
}
}
}