diff options
author | Nicholas Noll <nbnoll@eml.cc> | 2020-05-30 19:54:27 -0700 |
---|---|---|
committer | Nicholas Noll <nbnoll@eml.cc> | 2020-05-30 19:54:27 -0700 |
commit | 6bceaa4a60da1f075bdd3133d7d95d8d5d7a06ac (patch) | |
tree | 37bb8eb3667c397d1b7e6bd1733aae710abd6dd7 /sys/cmd/cc/cc.c | |
parent | fc158ab464fd58aec17aa590bc2022f539fefc5a (diff) |
fix: many use before initialization bugs
Diffstat (limited to 'sys/cmd/cc/cc.c')
-rw-r--r-- | sys/cmd/cc/cc.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/cmd/cc/cc.c b/sys/cmd/cc/cc.c index da4c4ed..3246292 100644 --- a/sys/cmd/cc/cc.c +++ b/sys/cmd/cc/cc.c @@ -277,9 +277,21 @@ freelx(Lexer *lx) void initp(Parser *p) { + /* initialize temporary buffers */ + memset(p->spstk, 0, sizeof(p->spstk)); + memset(p->nmstk, 0, sizeof(p->nmstk)); + memset(p->dtstk, 0, sizeof(p->dtstk)); + memset(p->ptstk, 0, sizeof(p->ptstk)); + p->sp = p->spstk; p->nm = p->nmstk; p->dt = p->dtstk; + p->pt = p->ptstk; + + /* initialize ast */ + p->ast.cap = 0; + p->ast.len = 0; + p->ast.decls = nil; } error |