]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR objc++/28050 (ICE on invalid initializer)
authorMatthias Klose <doko@gcc.gnu.org>
Mon, 22 Jun 2009 22:21:17 +0000 (22:21 +0000)
committerMatthias Klose <doko@gcc.gnu.org>
Mon, 22 Jun 2009 22:21:17 +0000 (22:21 +0000)
gcc/
2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
            Matthias Klose  <doko@ubuntu.com>

        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  <steven@gcc.gnu.org>
            Matthias Klose  <doko@ubuntu.com>

        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  <doko@ubuntu.com>

        PR objc/28050
        * pr28050.m: New testcase.

From-SVN: r148819

gcc/ChangeLog
gcc/c-parser.c
gcc/objc/ChangeLog
gcc/objc/objc-act.c
gcc/testsuite/ChangeLog
gcc/testsuite/objc.dg/pr28050.m [new file with mode: 0644]

index ddda82545765ef8041cd15f318a2fca7d19be4f6..d5daa73220e522751c9578541235136421cd2858 100644 (file)
@@ -1,3 +1,10 @@
+2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
+           Matthias Klose  <doko@ubuntu.com>
+
+       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  <rguenther@suse.de>
 
        Backport from mainline:
index 26d1731de002ddf0e09133fbe15c2acb34a21ed4..caf5955993d97bdfb7978b854e93b488f5a0b993 100644 (file)
@@ -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);
index ffb93a796f24ccd85c5fe85f620757ae0a4ebe4d..53bcbc6a6071c7d2e662b1a096ff57cbae98526a 100644 (file)
@@ -1,3 +1,10 @@
+2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
+           Matthias Klose  <doko@ubuntu.com>
+
+       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.
index 3d5a83b044ecafbecae68b8f55706f7df21deeeb..40614e2877e564be60cc974b52a5356c9710bd50 100644 (file)
@@ -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.  */
index c7273969e6f1033dbe22e3d10bae30f756df5842..cf3d5f327992f72d180a09aef04d6bdc8696670b 100644 (file)
@@ -1,3 +1,8 @@
+2009-06-22  Matthias Klose  <doko@ubuntu.com>
+
+       PR objc/28050
+       * pr28050.m: New testcase.
+
 2009-06-19  Richard Guenther  <rguenther@suse.de>
 
        Backport from mainline:
diff --git a/gcc/testsuite/objc.dg/pr28050.m b/gcc/testsuite/objc.dg/pr28050.m
new file mode 100644 (file)
index 0000000..efd9216
--- /dev/null
@@ -0,0 +1,2 @@
+/* { dg-do compile } */
+int i = [0]; /* { dg-error "expected .:. before .\\]. token" } */