From: Mike Stump Date: Sat, 16 May 2009 04:31:34 +0000 (+0000) Subject: Fixup __extension__ i = 1 parsing. Thanks Eli! X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=8d28663db18fb42d2b2cb5137c5b8cf247cd9e3b;p=clang Fixup __extension__ i = 1 parsing. Thanks Eli! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71927 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParseExpr.cpp b/lib/Parse/ParseExpr.cpp index c3a38b1fe2..20c55a1ea3 100644 --- a/lib/Parse/ParseExpr.cpp +++ b/lib/Parse/ParseExpr.cpp @@ -225,7 +225,7 @@ Parser::ParseExpressionWithLeadingAt(SourceLocation AtLoc) { /// 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__, diff --git a/test/Parser/cxx-throw.cpp b/test/Parser/cxx-throw.cpp index 968ef469f9..bcc49ec1b4 100644 --- a/test/Parser/cxx-throw.cpp +++ b/test/Parser/cxx-throw.cpp @@ -10,7 +10,6 @@ void foo() { 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}} }