diff --git a/lang/module.c b/lang/module.c index dc387f9..ec5729a 100644 --- a/lang/module.c +++ b/lang/module.c @@ -55,6 +55,8 @@ static struct module_stack traversing = {0}; if (sizeof(modules_list) > sizeof(traversing.elems)) abort_print("Modules too big to traverse"); + if (in_stack(start, visited)) + return; traversing.next = 0; traversing.elems[traversing.next++] = start; do {