Commit cbf259c4 by Ian Lance Taylor

compiler: Permit label on fallthrough statement.

Test case: https://go-review.googlesource.com/7523 .

From-SVN: r221428
parent f41914c3
......@@ -3735,6 +3735,17 @@ Parse::labeled_stmt(const std::string& label_name, Location location)
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
// unused label.
if (label != NULL)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment