diff options
Diffstat (limited to 'clang/lib/Parse/Parser.cpp')
-rw-r--r-- | clang/lib/Parse/Parser.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp index 66ed352ef68..310105a4ac6 100644 --- a/clang/lib/Parse/Parser.cpp +++ b/clang/lib/Parse/Parser.cpp @@ -1354,16 +1354,15 @@ Parser::ExprResult Parser::ParseSimpleAsm(SourceLocation *EndLoc) { ExprResult Result(ParseAsmStringLiteral()); - if (Result.isInvalid()) { - SkipUntil(tok::r_paren, StopAtSemi | StopBeforeMatch); - if (EndLoc) - *EndLoc = Tok.getLocation(); - ConsumeAnyToken(); - } else { + if (!Result.isInvalid()) { // Close the paren and get the location of the end bracket T.consumeClose(); if (EndLoc) *EndLoc = T.getCloseLocation(); + } else if (SkipUntil(tok::r_paren, StopAtSemi | StopBeforeMatch)) { + if (EndLoc) + *EndLoc = Tok.getLocation(); + ConsumeParen(); } return Result; |