aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>2006-07-19 19:56:29 +0000
committerVolker Reichelt <reichelt@gcc.gnu.org>2006-07-19 19:56:29 +0000
commit7eb314dc4ba66b79de1a170c127cd0eee10f8fb5 (patch)
treebfdfa9fcc8bec38756d110988eff8e2a3bd6f53c /gcc/objc
parent0d24c3fa6fb60131ec2cb412bd9eb4bd272df7c3 (diff)
downloadgcc-7eb314dc4ba66b79de1a170c127cd0eee10f8fb5.zip
gcc-7eb314dc4ba66b79de1a170c127cd0eee10f8fb5.tar.gz
gcc-7eb314dc4ba66b79de1a170c127cd0eee10f8fb5.tar.bz2
re PR objc++/28434 (ICE with invalid protocol)
PR obj-c++/28434 * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. * obj-c++.dg/proto-error-1.mm: New test. From-SVN: r115599
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/ChangeLog5
-rw-r--r--gcc/objc/objc-act.c8
2 files changed, 9 insertions, 4 deletions
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index ee36565..63c32e3 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -1,3 +1,8 @@
+2006-07-19 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+
+ PR obj-c++/28434
+ * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes.
+
2006-06-06 Mike Stump <mrs@apple.com>
* objc-act.c: Remove prototype for objc_build_volatilized_type.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 39d12fc..88b9386 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -1433,12 +1433,12 @@ lookup_and_install_protocols (tree protocols)
tree ident = TREE_VALUE (proto);
tree p = lookup_protocol (ident);
- if (!p)
- error ("cannot find protocol declaration for %qs",
- IDENTIFIER_POINTER (ident));
- else
+ if (p)
return_value = chainon (return_value,
build_tree_list (NULL_TREE, p));
+ else if (ident != error_mark_node)
+ error ("cannot find protocol declaration for %qs",
+ IDENTIFIER_POINTER (ident));
}
return return_value;