Browse Source

Merge pull request #1505 from jasonKercher/fix_odin_test

fix `odin test`
gingerBill 3 years ago
parent
commit
4474144c24
1 changed files with 7 additions and 3 deletions
  1. 7 3
      src/llvm_backend.cpp

+ 7 - 3
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) {