diff options
author | Volker Reichelt <reichelt@igpm.rwth-aachen.de> | 2006-07-19 19:56:29 +0000 |
---|---|---|
committer | Volker Reichelt <reichelt@gcc.gnu.org> | 2006-07-19 19:56:29 +0000 |
commit | 7eb314dc4ba66b79de1a170c127cd0eee10f8fb5 (patch) | |
tree | bfdfa9fcc8bec38756d110988eff8e2a3bd6f53c /gcc/objc | |
parent | 0d24c3fa6fb60131ec2cb412bd9eb4bd272df7c3 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 8 |
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; |