diff options
Diffstat (limited to 'bootstrap/parse.c')
| -rw-r--r-- | bootstrap/parse.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/bootstrap/parse.c b/bootstrap/parse.c index fd2d703..ccdb510 100644 --- a/bootstrap/parse.c +++ b/bootstrap/parse.c @@ -2962,7 +2962,14 @@ parsedecl(decl_yielder_t yield, void *yarg, struct parser *P, bool toplevel) { free(cf.decls.d); lexexpect(P, ';'); return; + } else if (lexmatch(P, &tok, TKident)) { + const struct decl *dm = finddecl(P, tok.str); + if (!dm || dm->t != Dmacro) + goto err; + parseexpandmacro(P, &dm->macro); + return parsedecl(yield, yarg, P, toplevel); } else { + err: fatal(P, tok.span, "expected declaration (near %s)", tok2str(tok)); } |