aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2025-10-29 16:14:55 +0000
committerJeroen van Rijn <Kelimion@users.noreply.github.com>2025-10-29 17:46:00 +0100
commit36d63b14b501e46b88d3b0b62f29c4a3fa2f556e (patch)
tree32d7fb5391d8773d4f93d90a4da2c880e0a767be /src
parentd38602e7882da68dce9d2973274bbf2a4833fcdf (diff)
Just retry again with `lb_generate_missing_procedures`
Diffstat (limited to 'src')
-rw-r--r--src/llvm_backend.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp
index 7742fb39d..22a481187 100644
--- a/src/llvm_backend.cpp
+++ b/src/llvm_backend.cpp
@@ -2553,6 +2553,8 @@ gb_internal WORKER_TASK_PROC(lb_generate_missing_procedures_to_check_worker_proc
}
gb_internal void lb_generate_missing_procedures(lbGenerator *gen, bool do_threading) {
+ isize retry_count = 0;
+retry:;
if (do_threading) {
for (auto const &entry : gen->modules) {
lbModule *m = entry.value;
@@ -2570,6 +2572,14 @@ gb_internal void lb_generate_missing_procedures(lbGenerator *gen, bool do_thread
for (auto const &entry : gen->modules) {
lbModule *m = entry.value;
+ if (m->missing_procedures_to_check.count != 0) {
+ if (retry_count > gen->modules.count) {
+ GB_ASSERT(m->missing_procedures_to_check.count == 0);
+ }
+
+ retry_count += 1;
+ goto retry;
+ }
GB_ASSERT(m->missing_procedures_to_check.count == 0);
GB_ASSERT(m->procedures_to_generate.count == 0);
}