diff options
Diffstat (limited to 'c')
| -rw-r--r-- | c/lex.c | 3 | ||||
| -rw-r--r-- | c/lex.h | 4 |
2 files changed, 4 insertions, 3 deletions
@@ -1668,6 +1668,7 @@ tryinclude(struct lexer *lx, const struct span *span, char *path) case LXOK: new.save = xmalloc(sizeof *new.save); lx->inclnerror = nerror; + lx->inclnwarn = nwarn; memcpy(new.save, lx, sizeof *lx); *lx = new; @@ -2036,7 +2037,7 @@ Begin: markfileonce(lx->fileid, lx->inclguard); } struct lexer *sv = lx->save; - if (sv->inclnerror != nerror) { + if (sv->inclnerror != nerror || sv->inclnwarn != nwarn) { int line; const char *f = getfilepos(&line, NULL, sv->fileid, sv->chridx-2); note(NULL, "in file included from %s:%d", f, line); @@ -88,7 +88,7 @@ struct token { */ }; -extern int nerror; +extern int nerror, nwarn; struct lexer { struct lexer *save; short fileid; @@ -102,7 +102,7 @@ struct lexer { struct arena **tmparena; bool firstdirective; short nppcnd0; - short inclnerror; + short inclnerror, inclnwarn; internstr inclguard; uchar chrbuf[1<<10]; uint chridxbuf[1<<10]; |