From 082a4b9bda9e808b56dc99b53de69d5e875672b6 Mon Sep 17 00:00:00 2001 From: Aaron Ballman Date: Thu, 9 Jan 2014 20:12:12 +0000 Subject: [PATCH] Attempting to appease the build bots on systems with ansi escape sequences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198887 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Parse/ParseDecl.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index 0ed245f942..411edcc6d7 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -292,13 +292,8 @@ void Parser::ParseGNUAttributeArgs(IdentifierInfo *AttrName, // Ignore the left paren location for now. ConsumeParen(); - OwningPtr Unevaluated; ArgsVector ArgExprs; - if (attributeParsedArgsUnevaluated(*AttrName)) - Unevaluated.reset(new EnterExpressionEvaluationContext(Actions, - Sema::Unevaluated)); - if (Tok.is(tok::identifier)) { // If this attribute wants an 'identifier' argument, make it so. bool IsIdentifierArg = attributeHasIdentifierArg(*AttrName); @@ -322,6 +317,11 @@ void Parser::ParseGNUAttributeArgs(IdentifierInfo *AttrName, // Parse the non-empty comma-separated list of expressions. do { + OwningPtr Unevaluated; + if (attributeParsedArgsUnevaluated(*AttrName)) + Unevaluated.reset(new EnterExpressionEvaluationContext(Actions, + Sema::Unevaluated)); + ExprResult ArgExpr(ParseAssignmentExpression()); if (ArgExpr.isInvalid()) { SkipUntil(tok::r_paren, StopAtSemi); @@ -338,6 +338,9 @@ void Parser::ParseGNUAttributeArgs(IdentifierInfo *AttrName, Attrs.addNew(AttrName, SourceRange(AttrLoc, RParen), ScopeName, ScopeLoc, ArgExprs.data(), ArgExprs.size(), Syntax); } + + if (EndLoc) + *EndLoc = RParen; } /// \brief Parses a single argument for a declspec, including the -- 2.40.0