diff options
Diffstat (limited to 'llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp')
| -rw-r--r-- | llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp | 4 | 
1 files changed, 4 insertions, 0 deletions
| diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp index f79cbd7fb6b..b4d206db54c 100644 --- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp +++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp @@ -1219,6 +1219,10 @@ OperandMatchResultTy RISCVAsmParser::parseCallSymbol(OperandVector &Operands) {    if (getLexer().getKind() != AsmToken::Identifier)      return MatchOperand_NoMatch; +  // Avoid parsing the register in `call rd, foo` as a call symbol. +  if (getLexer().peekTok().getKind() != AsmToken::EndOfStatement) +    return MatchOperand_NoMatch; +    StringRef Identifier;    if (getParser().parseIdentifier(Identifier))      return MatchOperand_ParseFail; | 

