aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/c-decl.c5
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5dc52cb..db4804b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2003-05-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+
+ * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK.
+
2003-05-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
* m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers.
diff --git a/gcc/c-decl.c b/gcc/c-decl.c
index f6e6f5b..6eb0f55 100644
--- a/gcc/c-decl.c
+++ b/gcc/c-decl.c
@@ -1543,6 +1543,7 @@ duplicate_decls (newdecl, olddecl, different_binding_level)
/* Return any external DECL associated with ID, whether or not it is
currently in scope. */
+
static tree
any_external_decl (id)
tree id;
@@ -1550,7 +1551,9 @@ any_external_decl (id)
tree decl = IDENTIFIER_SYMBOL_VALUE (id);
tree t;
- if (decl && TREE_CODE (decl) != TYPE_DECL && DECL_EXTERNAL (decl))
+ if (decl == 0 || TREE_CODE (decl) == ERROR_MARK)
+ return 0;
+ else if (TREE_CODE (decl) != TYPE_DECL && DECL_EXTERNAL (decl))
return decl;
t = purpose_member (id, truly_local_externals);