diff options
author | Marek Polacek <polacek@redhat.com> | 2016-07-29 17:34:55 +0000 |
---|---|---|
committer | Marek Polacek <mpolacek@gcc.gnu.org> | 2016-07-29 17:34:55 +0000 |
commit | efd0786f218626c25adde976a9f83121b0c45342 (patch) | |
tree | c21b60865d58f3c7e38d33b70ce2af3168245099 /gcc/c | |
parent | f618a47208b4cf40ac7567e7b7fc9aeefeecc207 (diff) | |
download | gcc-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/c')
-rw-r--r-- | gcc/c/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/c/c-parser.c | 1 |
2 files changed, 5 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; |