]> granicus.if.org Git - clang/commitdiff
Attempting to appease the build bots on systems with ansi escape sequences.
authorAaron Ballman <aaron@aaronballman.com>
Thu, 9 Jan 2014 20:12:12 +0000 (20:12 +0000)
committerAaron Ballman <aaron@aaronballman.com>
Thu, 9 Jan 2014 20:12:12 +0000 (20:12 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198887 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseDecl.cpp

index 0ed245f942d44789badb73cd1a69095162ac22f3..411edcc6d70055d2599928218fbadab2a9dd55ab 100644 (file)
@@ -292,13 +292,8 @@ void Parser::ParseGNUAttributeArgs(IdentifierInfo *AttrName,
   // Ignore the left paren location for now.
   ConsumeParen();
 
-  OwningPtr<EnterExpressionEvaluationContext> 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<EnterExpressionEvaluationContext> 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