mirror of git://gcc.gnu.org/git/gcc.git
compiler: Permit label on fallthrough statement.
Test case: https://go-review.googlesource.com/7523 . From-SVN: r221428
This commit is contained in:
parent
f41914c385
commit
cbf259c447
|
|
@ -3735,6 +3735,17 @@ Parse::labeled_stmt(const std::string& label_name, Location location)
|
||||||
|
|
||||||
if (!this->statement_may_start_here())
|
if (!this->statement_may_start_here())
|
||||||
{
|
{
|
||||||
|
if (this->peek_token()->is_keyword(KEYWORD_FALLTHROUGH))
|
||||||
|
{
|
||||||
|
// We don't treat the fallthrough keyword as a statement,
|
||||||
|
// because it can't appear most places where a statement is
|
||||||
|
// permitted, but it may have a label. We introduce a
|
||||||
|
// semicolon because the caller expects to see a statement.
|
||||||
|
this->unget_token(Token::make_operator_token(OPERATOR_SEMICOLON,
|
||||||
|
location));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Mark the label as used to avoid a useless error about an
|
// Mark the label as used to avoid a useless error about an
|
||||||
// unused label.
|
// unused label.
|
||||||
if (label != NULL)
|
if (label != NULL)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue