diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 21f149e4d15..2dd43e6fe0f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-07-26 Neil Booth + + * cppmacro.c (_cpp_create_definition): Don't attempt redefinition + warnings on assertions. + 2002-07-26 Neil Booth * c-common.h (RID_AND, RID_AND_EQ, RID_NOT, RID_NOT_EQ, diff --git a/gcc/cppmacro.c b/gcc/cppmacro.c index c8e2410af61..50cc9bbf4ba 100644 --- a/gcc/cppmacro.c +++ b/gcc/cppmacro.c @@ -1547,7 +1547,7 @@ _cpp_create_definition (pfile, node) if (!ok) return ok; - if (node->type != NT_VOID) + if (node->type == NT_MACRO) { if (CPP_OPTION (pfile, warn_unused_macros)) _cpp_warn_if_unused_macro (pfile, node, NULL); @@ -1562,9 +1562,11 @@ _cpp_create_definition (pfile, node) node->value.macro->line, 0, "this is the location of the previous definition"); } - _cpp_free_definition (node); } + if (node->type != NT_VOID) + _cpp_free_definition (node); + /* Enter definition in hash table. */ node->type = NT_MACRO; node->value.macro = macro;