diff options
| author | gingerBill <bill@gingerbill.org> | 2021-10-18 12:28:46 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2021-10-18 12:28:46 +0100 |
| commit | 7aac8df2f2ddb89ffa8b1d096f41d89e689a2293 (patch) | |
| tree | 1bb8f08b327bc518e008459e5817b70e78ebe2f7 /src | |
| parent | e98e62ec1304f6ba065870503ff6d558c85722d7 (diff) | |
Add `runtime._cleanup_runtime` internal call
Diffstat (limited to 'src')
| -rw-r--r-- | src/checker.cpp | 2 | ||||
| -rw-r--r-- | src/llvm_backend.cpp | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/checker.cpp b/src/checker.cpp index cfe29b5ee..d3c0080de 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -1967,6 +1967,7 @@ void generate_minimum_dependency_set(Checker *c, Entity *start) { str_lit("__init_context"), str_lit("__type_info_of"), str_lit("cstring_to_string"), + str_lit("_cleanup_runtime"), // Pseudo-CRT required procedures str_lit("memset"), @@ -1993,7 +1994,6 @@ void generate_minimum_dependency_set(Checker *c, Entity *start) { str_lit("gnu_h2f_ieee"), str_lit("gnu_f2h_ieee"), str_lit("extendhfsf2"), - }; for (isize i = 0; i < gb_count_of(required_runtime_entities); i++) { force_add_dependency_entity(c, c->info.runtime_package->scope, required_runtime_entities[i]); diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 717768240..a72ddc646 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -879,7 +879,10 @@ lbProcedure *lb_create_main_procedure(lbModule *m, lbProcedure *startup_runtime) } } - + + lbValue cleanup_runtime_value = lb_find_runtime_value(m, str_lit("_cleanup_runtime")); + lb_emit_call(p, cleanup_runtime_value, {}, ProcInlining_none, false); + if (is_dll_main) { LLVMBuildRet(p->builder, LLVMConstInt(lb_type(m, t_i32), 1, false)); |