diff --git a/lang/module.c b/lang/module.c index f6b930e..8c16fa8 100644 --- a/lang/module.c +++ b/lang/module.c @@ -40,7 +40,7 @@ // Checks if an info is in a stack static int in_stack(const ModuleInfo *info, struct module_stack *stack) { - for (int i = 0; i <= stack->top; ++i) { + for (int i = 0; i < stack->top; ++i) { ModuleInfo *elem = stack->elems[i]; if (elem == info) return 1; @@ -74,8 +74,9 @@ use++; } if (*use == NULL) { + printf("visited %s\n", cur->name); traversing.elems[traversing.top--] = NULL; - visited->elems[++visited->top] = cur; + visited->elems[visited->top++] = cur; } } while (traversing.top != -1); }