diff options
author | Jakub Jelinek <jakub@redhat.com> | 2012-08-24 23:45:22 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2012-08-24 23:45:22 +0200 |
commit | 6265d07ce0d8cdbfba7d3057804441d1a14f5b73 (patch) | |
tree | ca151ea097c3c8d5eb187f89f14f8a63c937ffca /gcc | |
parent | 12fdc0990f54eb02eb6a762fcf7982b8ca9eab4a (diff) | |
download | gcc-6265d07ce0d8cdbfba7d3057804441d1a14f5b73.zip gcc-6265d07ce0d8cdbfba7d3057804441d1a14f5b73.tar.gz gcc-6265d07ce0d8cdbfba7d3057804441d1a14f5b73.tar.bz2 |
re PR c/54355 (ICE on invalid code in switch statement)
PR c/54355
* c-decl.c (c_parser_label): Pass true as nested and fix up comments
for nested and empty_ok arguments in the call to
c_parser_declaration_or_fndef.
* gcc.dg/pr54355.c: New test.
From-SVN: r190656
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/c/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/c/c-parser.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/pr54355.c | 11 |
4 files changed, 24 insertions, 1 deletions
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog index 72b5a4d..108c0d3 100644 --- a/gcc/c/ChangeLog +++ b/gcc/c/ChangeLog @@ -1,3 +1,10 @@ +2012-08-24 Jakub Jelinek <jakub@redhat.com> + + PR c/54355 + * c-decl.c (c_parser_label): Pass true as nested and fix up comments + for nested and empty_ok arguments in the call to + c_parser_declaration_or_fndef. + 2012-08-17 Jakub Jelinek <jakub@redhat.com> * c-tree.h (c_last_sizeof_arg): Declare. diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c index 7536dc5..bea9791 100644 --- a/gcc/c/c-parser.c +++ b/gcc/c/c-parser.c @@ -4327,7 +4327,7 @@ c_parser_label (c_parser *parser) "a declaration is not a statement"); c_parser_declaration_or_fndef (parser, /*fndef_ok*/ false, /*static_assert_ok*/ true, - /*nested*/ true, /*empty_ok*/ false, + /*empty_ok*/ true, /*nested*/ true, /*start_attr_ok*/ true, NULL); } } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e217cd5..6fa0755 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-08-24 Jakub Jelinek <jakub@redhat.com> + + PR c/54355 + * gcc.dg/pr54355.c: New test. + 2012-08-24 H.J. Lu <hongjiu.lu@intel.com> PR debug/52857 diff --git a/gcc/testsuite/gcc.dg/pr54355.c b/gcc/testsuite/gcc.dg/pr54355.c new file mode 100644 index 0000000..0a0b7fa --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr54355.c @@ -0,0 +1,11 @@ +/* PR c/54355 */ +/* { dg-do compile } */ + +void +foo (int i) +{ + switch (i) + { + case 0: T x > /* { dg-error "(label|unknown type|expected)" } */ + } +} /* { dg-error "expected" } */ |