diff options
| author | Aaron Ballman <aaron@aaronballman.com> | 2014-01-09 20:12:12 +0000 |
|---|---|---|
| committer | Aaron Ballman <aaron@aaronballman.com> | 2014-01-09 20:12:12 +0000 |
| commit | 7c1fcf8b2cabd683beac967cbedc187d19c23487 (patch) | |
| tree | 7fb628a1975c2066d6b717f042f1ab4e993980d7 | |
| parent | cd56deb6bf6ce6fa192b3ef255fa2cc1e538ed7e (diff) | |
| download | bcm5719-llvm-7c1fcf8b2cabd683beac967cbedc187d19c23487.tar.gz bcm5719-llvm-7c1fcf8b2cabd683beac967cbedc187d19c23487.zip | |
Attempting to appease the build bots on systems with ansi escape sequences.
llvm-svn: 198887
| -rw-r--r-- | clang/lib/Parse/ParseDecl.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 0ed245f942d..411edcc6d70 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -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 |

