diff options
Diffstat (limited to 'llvm/lib/MC/MCParser/AsmParser.cpp')
-rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index f4de09a1c0a..70a37e3009b 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -1032,12 +1032,14 @@ bool AsmParser::HandleMacroEntry(StringRef Name, SMLoc NameLoc, // list. if (ParenLevel == 0 && Lexer.is(AsmToken::Comma)) { MacroArguments.push_back(std::vector<AsmToken>()); - } else if (Lexer.is(AsmToken::LParen)) { - ++ParenLevel; - } else if (Lexer.is(AsmToken::RParen)) { - if (ParenLevel) - --ParenLevel; } else { + // Adjust the current parentheses level. + if (Lexer.is(AsmToken::LParen)) + ++ParenLevel; + else if (Lexer.is(AsmToken::RParen) && ParenLevel) + --ParenLevel; + + // Append the token to the current argument list. MacroArguments.back().push_back(getTok()); } Lex(); |