@@ -1406,6 +1406,7 @@ static int do_handle_undef(struct stream *stream, struct token **line, struct to
if (!sym || sym->scope != file_scope) {
sym = alloc_symbol(left->pos, SYM_NODE);
bind_symbol(sym, left->ident, NS_MACRO);
+ add_ident(¯os, left->ident);
}
sym->namespace = NS_UNDEF;
@@ -2063,5 +2064,7 @@ void dump_macro_definitions(void)
struct symbol *sym = lookup_macro(name);
if (sym)
dump_macro(sym);
+ else
+ printf("#undef %s\n", show_ident(name));
} END_FOR_EACH_PTR(name);
}
@@ -15,4 +15,5 @@ check-output-pattern-1-times: #define __CHECKER__ 1
check-output-contains: #define IJK ijk
check-output-contains: #define DEF xyz
check-output-contains: #define NYDEF ydef
+check-output-contains: #undef ABC
*/
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com> --- pre-process.c | 3 +++ validation/preprocessor/dump-macros.c | 1 + 2 files changed, 4 insertions(+)