aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/parser.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/parser.c b/src/parser.c
index 4126145..4be9d4e 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -274,9 +274,10 @@ cleanup_stack()
{
int delta = tos - curs;
- if (delta)
+ if (delta > 0)
memmove(token_stack, token_stack+curs, delta*sizeof(token_stack[0]));
-
+ else if (delta < 0) /* Invalid input */
+ delta = 0;
tos = delta;
curs = 0;
}
@@ -652,6 +653,8 @@ parse_function_declaration(Ident *ident, int parm)
case LBRACE:
if (ident->name) {
caller = lookup(ident->name);
+ if (caller && caller->storage == AutoStorage)
+ caller = NULL;
func_body();
}
break;

Return to:

Send suggestions and report system problems to the System administrator.