From b176963b294be4ec6aaa4ac217996660f23288fc Mon Sep 17 00:00:00 2001 From: fennecdjay Date: Sun, 10 Mar 2019 12:10:22 +0100 Subject: [PATCH] :bug: Fix stack_depth --- src/parse/scan2.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/parse/scan2.c b/src/parse/scan2.c index 8ba8711e..d00e7066 100644 --- a/src/parse/scan2.c +++ b/src/parse/scan2.c @@ -110,6 +110,7 @@ ANN m_bool scan2_stmt_fptr(const Env env, const Stmt_Fptr ptr) { GWDEBUG_EXE } else if(!GET_FLAG(ptr->td, static)) { SET_FLAG(ptr->value, member); SET_FLAG(ptr->func, member); + def->stack_depth += SZ_INT; } else { SET_FLAG(ptr->value, static); SET_FLAG(ptr->func, static); @@ -505,6 +506,10 @@ ANN m_bool scan2_func_def(const Env env, const Func_Def f) { GWDEBUG_EXE func_name = func_tmpl_name(env, f); const Func func = nspc_lookup_func1(env->curr, insert_symbol(func_name)); if(func) { + if(GET_FLAG(func, member)) + f->stack_depth += SZ_INT; + if(GET_FLAG(func->def, variadic)) + f->stack_depth += SZ_INT; f->ret_type = type_decl_resolve(env, f->td); return (f->arg_list && f->arg_list->type) ? scan2_args(env, f) : GW_OK; } -- 2.43.0