aboutsummaryrefslogtreecommitdiffhomepage
path: root/parse.c
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-08-18 04:11:42 +0900
committernsfisis <nsfisis@gmail.com>2025-08-18 04:11:46 +0900
commit1748294579492712d2b928a34329370fa3378a07 (patch)
tree0cf6a56d26345ee266eb3ce598a069a7e33c86d7 /parse.c
parent991245b69c53b1e2f708af34b6f829182ebf5cf2 (diff)
downloadducc-1748294579492712d2b928a34329370fa3378a07.tar.gz
ducc-1748294579492712d2b928a34329370fa3378a07.tar.zst
ducc-1748294579492712d2b928a34329370fa3378a07.zip
feat: calculate stack size instead of hard-coding
Diffstat (limited to 'parse.c')
-rw-r--r--parse.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 7262c6c..1ee9ce7 100644
--- a/parse.c
+++ b/parse.c
@@ -1102,6 +1102,11 @@ AstNode* parse_func_decl_or_def(Parser* p) {
func->name = name;
func->node_params = params;
func->node_body = body;
+ if (p->n_lvars == 0) {
+ func->node_stack_size = 0;
+ } else {
+ func->node_stack_size = p->lvars[p->n_lvars - 1].stack_offset + type_sizeof(p->lvars[p->n_lvars - 1].ty);
+ }
return func;
}