From: Matthias Klose Date: Mon, 22 Jun 2009 22:21:17 +0000 (+0000) Subject: re PR objc++/28050 (ICE on invalid initializer) X-Git-Tag: releases/gcc-4.3.4~115 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70f796a849015e9cfbfc4fc940c4ed7d59cba56c;p=thirdparty%2Fgcc.git re PR objc++/28050 (ICE on invalid initializer) gcc/ 2009-06-22 Steven Bosscher Matthias Klose PR objc/28050 * c-parser.c (c_parser_objc_message_args): Return error_mark_node instead of NULL if a parser error occurs. gcc/objc/ 2009-06-22 Steven Bosscher Matthias Klose PR objc/28050 * objc-act.c (objc_build_message_args): Return if ARGS is the error_mark_node. gcc/testsuite/ 2009-06-22 Matthias Klose PR objc/28050 * pr28050.m: New testcase. From-SVN: r148819 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ddda82545765..d5daa73220e5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-06-22 Steven Bosscher + Matthias Klose + + PR objc/28050 + * c-parser.c (c_parser_objc_message_args): Return error_mark_node + instead of NULL if a parser error occurs. + 2009-06-19 Richard Guenther Backport from mainline: diff --git a/gcc/c-parser.c b/gcc/c-parser.c index 26d1731de002..caf5955993d9 100644 --- a/gcc/c-parser.c +++ b/gcc/c-parser.c @@ -6607,7 +6607,7 @@ c_parser_objc_message_args (c_parser *parser) { tree keywordexpr; if (!c_parser_require (parser, CPP_COLON, "expected %<:%>")) - return list; + return error_mark_node; keywordexpr = c_parser_objc_keywordexpr (parser); list = chainon (list, build_tree_list (sel, keywordexpr)); sel = c_parser_objc_selector (parser); diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog index ffb93a796f24..53bcbc6a6071 100644 --- a/gcc/objc/ChangeLog +++ b/gcc/objc/ChangeLog @@ -1,3 +1,10 @@ +2009-06-22 Steven Bosscher + Matthias Klose + + PR objc/28050 + * objc-act.c (objc_build_message_args): Return if ARGS is the + error_mark_node. + 2009-01-24 Release Manager * GCC 4.3.3 released. diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c index 3d5a83b044ec..40614e2877e5 100644 --- a/gcc/objc/objc-act.c +++ b/gcc/objc/objc-act.c @@ -6183,7 +6183,7 @@ objc_build_message_expr (tree mess) #endif tree method_params = NULL_TREE; - if (TREE_CODE (receiver) == ERROR_MARK) + if (TREE_CODE (receiver) == ERROR_MARK || TREE_CODE (args) == ERROR_MARK) return error_mark_node; /* Obtain the full selector name. */ diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c7273969e6f1..cf3d5f327992 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2009-06-22 Matthias Klose + + PR objc/28050 + * pr28050.m: New testcase. + 2009-06-19 Richard Guenther Backport from mainline: diff --git a/gcc/testsuite/objc.dg/pr28050.m b/gcc/testsuite/objc.dg/pr28050.m new file mode 100644 index 000000000000..efd9216f7fd2 --- /dev/null +++ b/gcc/testsuite/objc.dg/pr28050.m @@ -0,0 +1,2 @@ +/* { dg-do compile } */ +int i = [0]; /* { dg-error "expected .:. before .\\]. token" } */