aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2018-02-22 11:18:37 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2018-02-22 11:18:37 +0000
commitcaa7952a43833c6bd6b58d8432ec0a6ee1f0a945 (patch)
tree591cf5f9047dd7c6f9b6d277122504d34a618a00
parentc8fe60e37235378e8879477815215ba127e9c3e1 (diff)
downloadgcc-caa7952a43833c6bd6b58d8432ec0a6ee1f0a945.zip
gcc-caa7952a43833c6bd6b58d8432ec0a6ee1f0a945.tar.gz
gcc-caa7952a43833c6bd6b58d8432ec0a6ee1f0a945.tar.bz2
re PR c++/84493 (ICE with invalid cast)
PR c++/84493 * parser.c (cp_parser_braced_list): Use require_open instead of consume_open. * g++.dg/parse/error59.C: New test. From-SVN: r257899
-rw-r--r--gcc/cp/ChangeLog6
-rw-r--r--gcc/cp/parser.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/g++.dg/parse/error59.C6
4 files changed, 18 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 76dce82..f38f662 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,9 @@
+2018-02-22 Marek Polacek <polacek@redhat.com>
+
+ PR c++/84493
+ * parser.c (cp_parser_braced_list): Use require_open instead of
+ consume_open.
+
2018-02-21 Jason Merrill <jason@redhat.com>
PR c++/84454 - ICE with pack expansion in signature.
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index 2bb0d2d..4fa546a 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -21925,7 +21925,7 @@ cp_parser_braced_list (cp_parser* parser, bool* non_constant_p)
/* Consume the `{' token. */
matching_braces braces;
- braces.consume_open (parser);
+ braces.require_open (parser);
/* Create a CONSTRUCTOR to represent the braced-initializer. */
initializer = make_node (CONSTRUCTOR);
/* If it's not a `}', then there is a non-trivial initializer. */
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index bb9a417..48826c7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2018-02-22 Marek Polacek <polacek@redhat.com>
+
+ PR c++/84493
+ * g++.dg/parse/error59.C: New test.
+
2018-02-22 Tom de Vries <tom@codesourcery.com>
* gcc.c-torture/execute/pr82210.c: Require effective target alloca.
diff --git a/gcc/testsuite/g++.dg/parse/error59.C b/gcc/testsuite/g++.dg/parse/error59.C
new file mode 100644
index 0000000..2c44e21
--- /dev/null
+++ b/gcc/testsuite/g++.dg/parse/error59.C
@@ -0,0 +1,6 @@
+// PR c++/84493
+
+void foo()
+{
+ (struct {}x){}; // { dg-error "" }
+}