OSDN Git Service

PR c++/38635
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Dec 2008 18:27:03 +0000 (18:27 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 29 Dec 2008 18:27:03 +0000 (18:27 +0000)
* parser.c (cp_parser_condition): Use cp_parser_require
instead of cp_lexer_consume_token to consume =.

* g++.dg/parse/cond4.C: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@142951 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/parser.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/parse/cond4.C [new file with mode: 0644]

index 8611d92..10986b6 100644 (file)
@@ -1,5 +1,9 @@
 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
 
+       PR c++/38635
+       * parser.c (cp_parser_condition): Use cp_parser_require
+       instead of cp_lexer_consume_token to consume =.
+
        PR c++/38637
        * decl.c (start_enum): If enumtype is error_mark_node, exit early.
 
index 400f36c..e21aa8e 100644 (file)
@@ -7398,7 +7398,7 @@ cp_parser_condition (cp_parser* parser)
          else
            {
              /* Consume the `='.  */
-             cp_lexer_consume_token (parser->lexer);
+             cp_parser_require (parser, CPP_EQ, "%<=%>");
              initializer = cp_parser_initializer_clause (parser, &non_constant_p);
            }
          if (BRACE_ENCLOSED_INITIALIZER_P (initializer))
index 27649f0..24f7364 100644 (file)
@@ -1,5 +1,8 @@
 2008-12-29  Jakub Jelinek  <jakub@redhat.com>
 
+       PR c++/38635
+       * g++.dg/parse/cond4.C: New test.
+
        PR c++/36191
        * g++.dg/torture/pr36191.C: New test.
 
diff --git a/gcc/testsuite/g++.dg/parse/cond4.C b/gcc/testsuite/g++.dg/parse/cond4.C
new file mode 100644 (file)
index 0000000..ae210e0
--- /dev/null
@@ -0,0 +1,6 @@
+// PR c++/38635
+// { dg-do compile }
+
+void foo()                                                                                                                              
+{                                                                                                                                       
+  if (struct A{}// { dg-error "types may not be defined|expected" }