From 0fa21580fa6d673bcf221d5942ce8fc26bb5448b Mon Sep 17 00:00:00 2001 From: Tucker Evans Date: Wed, 9 Oct 2019 00:29:14 -0400 Subject: Fix function argument offsets --- pc.y | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'pc.y') diff --git a/pc.y b/pc.y index d891260..1de6065 100644 --- a/pc.y +++ b/pc.y @@ -247,6 +247,7 @@ sub_prog_head tmp->var_type = $5; } + update_offsets($3, -1); free_tree($3); @@ -275,6 +276,8 @@ sub_prog_head assert(tmp->func_info->argv = malloc(i * sizeof(int))); assert(!set_func_types($3, tmp->func_info->argv, i)); + + update_offsets($3, -1); free_tree($3); $$ = mktree(PROC, mkid(tmp), NULL); @@ -284,6 +287,7 @@ sub_prog_head arguments :'(' param_list ')' { + cur_scope->offset -= count_args($2); $$ = $2; } |/*empty*/{ -- cgit v1.1