diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-08-18 04:11:42 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-18 04:11:46 +0900 |
| commit | 1748294579492712d2b928a34329370fa3378a07 (patch) | |
| tree | 0cf6a56d26345ee266eb3ce598a069a7e33c86d7 /parse.c | |
| parent | 991245b69c53b1e2f708af34b6f829182ebf5cf2 (diff) | |
| download | ducc-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.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -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; } |
