From 9c349a39eb5b2466b60a0be488a0c55bbf7915b2 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Tue, 25 Mar 2008 20:19:58 -0700 Subject: re PR objc/29197 (ICE after error with array type with undefined variable) 2008-03-25 Andrew Pinski PR objc/29197 * objc-act.c (encode_type): Handle when type is error_mark_node. (objc_push_parm): Handle when the type of parm is error_mark_node. 2008-03-25 Andrew Pinski PR objc/29197 * objc.dg/method-20.m: New testcase. From-SVN: r133540 --- gcc/objc/ChangeLog | 6 ++++++ gcc/objc/objc-act.c | 10 ++++++++++ 2 files changed, 16 insertions(+) (limited to 'gcc/objc') diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index b558eb6..7584ed1 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,9 @@ +2008-03-25 Andrew Pinski + + PR objc/29197 + * objc-act.c (encode_type): Handle when type is error_mark_node. + (objc_push_parm): Handle when the type of parm is error_mark_node. + 2008-03-25 Tom Tromey * Make-lang.in (objc_OBJS): New variable. diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 576e569..48bf974 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -8075,6 +8075,9 @@ encode_type (tree type, int curtype, int format) enum tree_code code = TREE_CODE (type); char c; + if (type == error_mark_node) + return; + if (TYPE_READONLY (type)) obstack_1grow (&util_obstack, 'r'); @@ -8231,6 +8234,13 @@ static void objc_push_parm (tree parm) { bool relayout_needed = false; + + if (TREE_TYPE (parm) == error_mark_node) + { + objc_parmlist = chainon (objc_parmlist, parm); + return; + } + /* Decay arrays and functions into pointers. */ if (TREE_CODE (TREE_TYPE (parm)) == ARRAY_TYPE) { -- cgit v1.1