From 146c9fea49571dc445ace2c2db57483948079f7d Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 10 May 2025 16:19:58 -0700 Subject: [PATCH] [X86] Use StringRef::consume_back (NFC) This patch uses consume_back while changing the type of TrailingDot to bool, indicating whether we have consumed "." or not. --- llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp index 86b4d8254355b..642a9cff4853c 100644 --- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -2378,7 +2378,7 @@ bool X86AsmParser::ParseIntelDotOperator(IntelExprStateMachine &SM, // Drop the optional '.'. StringRef DotDispStr = Tok.getString(); DotDispStr.consume_front("."); - StringRef TrailingDot; + bool TrailingDot = false; // .Imm gets lexed as a real. if (Tok.is(AsmToken::Real)) { @@ -2388,10 +2388,7 @@ bool X86AsmParser::ParseIntelDotOperator(IntelExprStateMachine &SM, Info.Offset = DotDisp.getZExtValue(); } else if ((isParsingMSInlineAsm() || getParser().isParsingMasm()) && Tok.is(AsmToken::Identifier)) { - if (DotDispStr.ends_with(".")) { - TrailingDot = DotDispStr.substr(DotDispStr.size() - 1); - DotDispStr = DotDispStr.drop_back(1); - } + TrailingDot = DotDispStr.consume_back("."); const std::pair BaseMember = DotDispStr.split('.'); const StringRef Base = BaseMember.first, Member = BaseMember.second; if (getParser().lookUpField(SM.getType(), DotDispStr, Info) && @@ -2409,8 +2406,8 @@ bool X86AsmParser::ParseIntelDotOperator(IntelExprStateMachine &SM, const char *DotExprEndLoc = DotDispStr.data() + DotDispStr.size(); while (Tok.getLoc().getPointer() < DotExprEndLoc) Lex(); - if (!TrailingDot.empty()) - getLexer().UnLex(AsmToken(AsmToken::Dot, TrailingDot)); + if (TrailingDot) + getLexer().UnLex(AsmToken(AsmToken::Dot, ".")); SM.addImm(Info.Offset); SM.setTypeInfo(Info.Type); return false;