/// process of disambiguating between an expression and a declaration.
Parser::OwningExprResult
Parser::ParseExpressionWithLeadingExtension(SourceLocation ExtLoc) {
- OwningExprResult LHS(ParseAssignmentExpression());
+ OwningExprResult LHS(ParseCastExpression(false));
if (LHS.isInvalid()) return move(LHS);
LHS = Actions.ActOnUnaryOp(CurScope, ExtLoc, tok::kw___extension__,
throw 1;
throw;
1 ? throw : (void)42;
- // gcc doesn't parse the below, but we do
- __extension__ throw 1;
+ __extension__ throw 1; // expected-error {{expected expression}}
(void)throw; // expected-error {{expected expression}}
}