diff --git a/ir.c b/ir.c index bf08a5d..b564bae 100644 --- a/ir.c +++ b/ir.c @@ -2862,7 +2862,7 @@ static bool gen_global_function(ir_builder *ir, ir_value *global) fun.locals = vec_size(code_globals) - fun.firstlocal; if (irfun->builtin) - fun.entry = irfun->builtin; + fun.entry = irfun->builtin+1; else { irfun->code_function_def = vec_size(code_functions); fun.entry = vec_size(code_statements); diff --git a/parser.c b/parser.c index f6a3024..1a5c427 100644 --- a/parser.c +++ b/parser.c @@ -4028,7 +4028,7 @@ skipvar: } vec_push(parser->functions, func); - func->builtin = -parser_token(parser)->constval.i; + func->builtin = -parser_token(parser)->constval.i-1; } if (!parser_next(parser)) {