From 7eb314dc4ba66b79de1a170c127cd0eee10f8fb5 Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Wed, 19 Jul 2006 19:56:29 +0000 Subject: 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 --- gcc/objc/ChangeLog | 5 +++++ gcc/objc/objc-act.c | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) (limited to 'gcc/objc') 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 + + PR obj-c++/28434 + * objc-act.c (lookup_and_install_protocols): Skip error_mark_nodes. + 2006-06-06 Mike Stump * 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; -- cgit v1.1