aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-01-02 23:31:38 +0000
committergingerBill <bill@gingerbill.org>2023-01-02 23:31:38 +0000
commitfd62ee14cdfe48be93b041aeadaf4d5eedce0447 (patch)
tree667b49a5b3881be6510f7bc45d0c87711653d0f9
parent8ece92f1f69217ae5b143cf0e7d812c0f857fa8d (diff)
Code moving around
-rw-r--r--src/checker.cpp47
1 files changed, 27 insertions, 20 deletions
diff --git a/src/checker.cpp b/src/checker.cpp
index e48142c82..c2cd1163a 100644
--- a/src/checker.cpp
+++ b/src/checker.cpp
@@ -5218,6 +5218,31 @@ gb_internal void check_unchecked_bodies(Checker *c) {
global_after_checking_procedure_bodies = true;
}
+gb_internal void check_safety_all_procedures_for_unchecked(Checker *c) {
+ GB_ASSERT(DEBUG_CHECK_ALL_PROCEDURES);
+ UntypedExprInfoMap untyped = {};
+ map_init(&untyped, heap_allocator());
+ defer (map_destroy(&untyped));
+
+
+ for_array(i, c->info.all_procedures) {
+ ProcInfo *pi = c->info.all_procedures[i];
+ GB_ASSERT(pi != nullptr);
+ GB_ASSERT(pi->decl != nullptr);
+ Entity *e = pi->decl->entity;
+ auto proc_checked_state = pi->decl->proc_checked_state.load();
+ if (e && ((e->flags & EntityFlag_ProcBodyChecked) == 0)) {
+ if ((e->flags & EntityFlag_Used) != 0) {
+ debugf("%.*s :: %s\n", LIT(e->token.string), type_to_string(e->type));
+ debugf("proc body unchecked\n");
+ debugf("Checked State: %s\n\n", ProcCheckedState_strings[proc_checked_state]);
+
+ consume_proc_info(c, pi, &untyped);
+ }
+ }
+ }
+}
+
gb_internal void check_test_procedures(Checker *c) {
if (build_context.test_names.entries.count == 0) {
return;
@@ -5790,26 +5815,8 @@ gb_internal void check_parsed_files(Checker *c) {
GB_ASSERT(c->procs_to_check.count == 0);
if (DEBUG_CHECK_ALL_PROCEDURES) {
- UntypedExprInfoMap untyped = {};
- map_init(&untyped, heap_allocator());
- defer (map_destroy(&untyped));
-
- for_array(i, c->info.all_procedures) {
- ProcInfo *pi = c->info.all_procedures[i];
- GB_ASSERT(pi != nullptr);
- GB_ASSERT(pi->decl != nullptr);
- Entity *e = pi->decl->entity;
- auto proc_checked_state = pi->decl->proc_checked_state.load();
- if (e && ((e->flags & EntityFlag_ProcBodyChecked) == 0)) {
- if ((e->flags & EntityFlag_Used) != 0) {
- debugf("%.*s :: %s\n", LIT(e->token.string), type_to_string(e->type));
- debugf("proc body unchecked\n");
- debugf("Checked State: %s\n\n", ProcCheckedState_strings[proc_checked_state]);
-
- consume_proc_info(c, pi, &untyped);
- }
- }
- }
+ TIME_SECTION("check unchecked (safety measure)");
+ check_safety_all_procedures_for_unchecked(c);
}
debugf("Total Procedure Bodies Checked: %td\n", total_bodies_checked.load(std::memory_order_relaxed));