aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2022-03-14 12:09:39 +0000
committerGitHub <noreply@github.com>2022-03-14 12:09:39 +0000
commit4474144c24d30cce896f4a8a562ad14cf5be96b6 (patch)
tree66b90b652f73c3384e358dfa22b10bb715a115ec /src
parentef3f448861303dcfe3c0bb7164d47ad694a03c0e (diff)
parentd2bc41a2df1612f8b3eb8300413be8b3f8bff895 (diff)
Merge pull request #1505 from jasonKercher/fix_odin_test
fix `odin test`
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index b6c1693d8..f5cb84785 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -1514,9 +1514,8 @@ void lb_generate_code(lbGenerator *gen) {
if ((e->scope->flags&ScopeFlag_Init) && name == "main") {
GB_ASSERT(e == info->entry_point);
}
- if (e->Procedure.is_export ||
- (e->Procedure.link_name.len > 0) ||
- ((e->scope->flags&ScopeFlag_File) && e->Procedure.link_name.len > 0)) {
+ if (build_context.command_kind == Command_test &&
+ (e->Procedure.is_export || e->Procedure.link_name.len > 0)) {
String link_name = e->Procedure.link_name;
if (e->pkg->kind == Package_Runtime) {
if (link_name == "main" ||
@@ -1740,6 +1739,11 @@ void lb_generate_code(lbGenerator *gen) {
}
}
+ if (build_context.command_kind == Command_test && !already_has_entry_point) {
+ TIME_SECTION("LLVM main");
+ lb_create_main_procedure(default_module, startup_runtime);
+ }
+
for_array(j, gen->modules.entries) {
lbModule *m = gen->modules.entries[j].value;
for_array(i, m->missing_procedures_to_check) {