aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMarek Polacek <polacek@redhat.com>2016-07-29 17:34:55 +0000
committerMarek Polacek <mpolacek@gcc.gnu.org>2016-07-29 17:34:55 +0000
commitefd0786f218626c25adde976a9f83121b0c45342 (patch)
treec21b60865d58f3c7e38d33b70ce2af3168245099 /gcc
parentf618a47208b4cf40ac7567e7b7fc9aeefeecc207 (diff)
downloadgcc-efd0786f218626c25adde976a9f83121b0c45342.zip
gcc-efd0786f218626c25adde976a9f83121b0c45342.tar.gz
gcc-efd0786f218626c25adde976a9f83121b0c45342.tar.bz2
re PR c/71853 (ICE on an ill-formed case statement in c_do_switch_warnings)
PR c/71853 * c-parser.c (c_parser_switch_statement): Initialize ce.original_type to error node for invalid code. * gcc.dg/noncompile/pr71853.c: New test. From-SVN: r238884
Diffstat (limited to 'gcc')
-rw-r--r--gcc/c/ChangeLog4
-rw-r--r--gcc/c/c-parser.c1
-rw-r--r--gcc/testsuite/ChangeLog3
-rw-r--r--gcc/testsuite/gcc.dg/noncompile/pr71853.c9
4 files changed, 17 insertions, 0 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index 89ca5aa..ec680d3c 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -3,6 +3,10 @@
PR c/71742
* c-decl.c (finish_struct): Rephrase an error message.
+ PR c/71853
+ * c-parser.c (c_parser_switch_statement): Initialize ce.original_type
+ to error node for invalid code.
+
2016-07-29 Jakub Jelinek <jakub@redhat.com>
PR c/71969
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index a86cae2..cc68912 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -5661,6 +5661,7 @@ c_parser_switch_statement (c_parser *parser, bool *if_p)
{
switch_cond_loc = UNKNOWN_LOCATION;
expr = error_mark_node;
+ ce.original_type = error_mark_node;
}
c_start_case (switch_loc, switch_cond_loc, expr, explicit_cast_p);
save_break = c_break_label;
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e2388b1..dbe2a3a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -5,6 +5,9 @@
* gcc.dg/c99-flex-array-1.c: Likewise.
* gcc.dg/c99-flex-array-typedef-1.c: Likewise.
+ PR c/71853
+ * gcc.dg/noncompile/pr71853.c: New test.
+
2016-07-29 Uros Bizjak <ubizjak@gmail.com>
* gcc.dg/pr59833.c: Use dg-add-options ieee.
diff --git a/gcc/testsuite/gcc.dg/noncompile/pr71853.c b/gcc/testsuite/gcc.dg/noncompile/pr71853.c
new file mode 100644
index 0000000..673b6c5
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/noncompile/pr71853.c
@@ -0,0 +1,9 @@
+/* PR c/71853 */
+/* { dg-do compile } */
+
+void f (void)
+{
+ case (0) { /* { dg-error "expected" } */
+ switch 0: { } /* { dg-error "expected" } */
+ }
+}