GIMPLEFE: Handle missing labels in goto statements
gcc/c/ PR testsuite/80580 * gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels. gcc/testsuite/ PR testsuite/80580 * gcc.dg/gimplefe-error-7.c: New test. From-SVN: r248738
This commit is contained in:
parent
afd88efc05
commit
9fc5e7a443
4 changed files with 48 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
PR testsuite/80580
|
||||
* gimple-parser.c (c_parser_gimple_if_stmt): Check for empty labels.
|
||||
|
||||
2017-05-30 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* c-objc-common.c (c_tree_printer): Gain bool and const char **
|
||||
|
|
|
@ -1335,9 +1335,14 @@ c_parser_gimple_if_stmt (c_parser *parser, gimple_seq *seq)
|
|||
{
|
||||
loc = c_parser_peek_token (parser)->location;
|
||||
c_parser_consume_token (parser);
|
||||
if (! c_parser_next_token_is (parser, CPP_NAME))
|
||||
{
|
||||
c_parser_error (parser, "expected label");
|
||||
return;
|
||||
}
|
||||
label = c_parser_peek_token (parser)->value;
|
||||
t_label = lookup_label_for_goto (loc, label);
|
||||
c_parser_consume_token (parser);
|
||||
t_label = lookup_label_for_goto (loc, label);
|
||||
if (! c_parser_require (parser, CPP_SEMICOLON, "expected %<;%>"))
|
||||
return;
|
||||
}
|
||||
|
@ -1359,6 +1364,11 @@ c_parser_gimple_if_stmt (c_parser *parser, gimple_seq *seq)
|
|||
{
|
||||
loc = c_parser_peek_token (parser)->location;
|
||||
c_parser_consume_token (parser);
|
||||
if (! c_parser_next_token_is (parser, CPP_NAME))
|
||||
{
|
||||
c_parser_error (parser, "expected label");
|
||||
return;
|
||||
}
|
||||
label = c_parser_peek_token (parser)->value;
|
||||
f_label = lookup_label_for_goto (loc, label);
|
||||
c_parser_consume_token (parser);
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2017-05-31 Mikhail Maltsev <maltsevm@gmail.com>
|
||||
|
||||
PR testsuite/80580
|
||||
* gcc.dg/gimplefe-error-7.c: New test.
|
||||
|
||||
2017-05-31 Graham Markall <graham.markall@embecosm.com>
|
||||
|
||||
* gcc.target/arc/add_n-combine.c: New test.
|
||||
|
|
27
gcc/testsuite/gcc.dg/gimplefe-error-7.c
Normal file
27
gcc/testsuite/gcc.dg/gimplefe-error-7.c
Normal file
|
@ -0,0 +1,27 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-fgimple" } */
|
||||
|
||||
__GIMPLE() void fn1()
|
||||
{
|
||||
if (1)
|
||||
goto
|
||||
else /* { dg-error "expected label" } */
|
||||
goto lbl;
|
||||
}
|
||||
|
||||
__GIMPLE() void fn2()
|
||||
{
|
||||
if (1)
|
||||
goto lbl;
|
||||
else
|
||||
goto ; /* { dg-error "expected label" } */
|
||||
}
|
||||
|
||||
__GIMPLE() void fn3()
|
||||
{
|
||||
if (1)
|
||||
goto lbl;
|
||||
else
|
||||
goto
|
||||
} /* { dg-error "expected label" } */
|
||||
|
Loading…
Add table
Reference in a new issue