[llvm] 77e300f - [MC] Change EndOfStatement "unexpected tokens in .xxx directive " to "expected newline"
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sun Jun 5 15:11:07 PDT 2022
Author: Fangrui Song
Date: 2022-06-05T15:11:01-07:00
New Revision: 77e300ffdfb83b9722f0736653f8983d0b2119d1
URL: https://github.com/llvm/llvm-project/commit/77e300ffdfb83b9722f0736653f8983d0b2119d1
DIFF: https://github.com/llvm/llvm-project/commit/77e300ffdfb83b9722f0736653f8983d0b2119d1.diff
LOG: [MC] Change EndOfStatement "unexpected tokens in .xxx directive " to "expected newline"
Added:
Modified:
llvm/lib/MC/MCParser/AsmParser.cpp
llvm/lib/MC/MCParser/MasmParser.cpp
llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
llvm/test/MC/ARM/directive_parsing.s
Removed:
################################################################################
diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp
index d0d2a435a52ff..9b0ec6be570c8 100644
--- a/llvm/lib/MC/MCParser/AsmParser.cpp
+++ b/llvm/lib/MC/MCParser/AsmParser.cpp
@@ -3753,8 +3753,7 @@ bool AsmParser::parseDirectiveCVFile() {
parseEscapedString(Checksum) ||
parseIntToken(ChecksumKind,
"expected checksum kind in '.cv_file' directive") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_file' directive"))
+ parseEOL())
return true;
}
@@ -3800,9 +3799,7 @@ bool AsmParser::parseDirectiveCVFuncId() {
SMLoc FunctionIdLoc = getTok().getLoc();
int64_t FunctionId;
- if (parseCVFunctionId(FunctionId, ".cv_func_id") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_func_id' directive"))
+ if (parseCVFunctionId(FunctionId, ".cv_func_id") || parseEOL())
return true;
if (!getStreamer().emitCVFuncIdDirective(FunctionId))
@@ -3861,8 +3858,7 @@ bool AsmParser::parseDirectiveCVInlineSiteId() {
Lex();
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_inline_site_id' directive"))
+ if (parseEOL())
return true;
if (!getStreamer().emitCVInlineSiteIdDirective(FunctionId, IAFunc, IAFile,
@@ -3986,7 +3982,7 @@ bool AsmParser::parseDirectiveCVInlineLinetable() {
"expected identifier in directive"))
return true;
- if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
+ if (parseEOL())
return true;
MCSymbol *FnStartSym = getContext().getOrCreateSymbol(FnStartName);
@@ -4147,7 +4143,7 @@ bool AsmParser::parseDirectiveCVFileChecksumOffset() {
int64_t FileNo;
if (parseIntToken(FileNo, "expected identifier in directive"))
return true;
- if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
+ if (parseEOL())
return true;
getStreamer().emitCVFileChecksumOffsetDirective(FileNo);
return false;
diff --git a/llvm/lib/MC/MCParser/MasmParser.cpp b/llvm/lib/MC/MCParser/MasmParser.cpp
index 96bb27661440c..86dc3a72907a4 100644
--- a/llvm/lib/MC/MCParser/MasmParser.cpp
+++ b/llvm/lib/MC/MCParser/MasmParser.cpp
@@ -4949,8 +4949,7 @@ bool MasmParser::parseDirectiveLine() {
(void)LineNumber;
// FIXME: Do something with the .line.
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.line' directive"))
+ if (parseEOL())
return true;
return false;
@@ -5083,8 +5082,7 @@ bool MasmParser::parseDirectiveCVFile() {
parseEscapedString(Checksum) ||
parseIntToken(ChecksumKind,
"expected checksum kind in '.cv_file' directive") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_file' directive"))
+ parseEOL())
return true;
}
@@ -5130,9 +5128,7 @@ bool MasmParser::parseDirectiveCVFuncId() {
SMLoc FunctionIdLoc = getTok().getLoc();
int64_t FunctionId;
- if (parseCVFunctionId(FunctionId, ".cv_func_id") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_func_id' directive"))
+ if (parseCVFunctionId(FunctionId, ".cv_func_id") || parseEOL())
return true;
if (!getStreamer().emitCVFuncIdDirective(FunctionId))
@@ -5191,8 +5187,7 @@ bool MasmParser::parseDirectiveCVInlineSiteId() {
Lex();
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cv_inline_site_id' directive"))
+ if (parseEOL())
return true;
if (!getStreamer().emitCVInlineSiteIdDirective(FunctionId, IAFunc, IAFile,
@@ -5318,7 +5313,7 @@ bool MasmParser::parseDirectiveCVInlineLinetable() {
"expected identifier in directive"))
return true;
- if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
+ if (parseEOL())
return true;
MCSymbol *FnStartSym = getContext().getOrCreateSymbol(FnStartName);
@@ -5479,7 +5474,7 @@ bool MasmParser::parseDirectiveCVFileChecksumOffset() {
int64_t FileNo;
if (parseIntToken(FileNo, "expected identifier in directive"))
return true;
- if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
+ if (parseEOL())
return true;
getStreamer().emitCVFileChecksumOffsetDirective(FileNo);
return false;
@@ -5788,8 +5783,7 @@ bool MasmParser::parseDirectiveCFIReturnColumn(SMLoc DirectiveLoc) {
/// parseDirectiveCFISignalFrame
/// ::= .cfi_signal_frame
bool MasmParser::parseDirectiveCFISignalFrame() {
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.cfi_signal_frame'"))
+ if (parseEOL())
return true;
getStreamer().emitCFISignalFrame();
@@ -6121,8 +6115,7 @@ bool MasmParser::parseDirectiveComm(bool IsLocal) {
}
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.comm' or '.lcomm' directive"))
+ if (parseEOL())
return true;
// NOTE: a size of zero for a .comm should create a undefined symbol
@@ -6168,8 +6161,7 @@ bool MasmParser::parseDirectiveComment(SMLoc DirectiveLoc) {
Lex(); // eat end of statement
} while (
!StringRef(parseStringTo(AsmToken::EndOfStatement)).contains(Delimiter));
- return parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'comment' directive");
+ return parseEOL();
}
/// parseDirectiveInclude
@@ -6203,9 +6195,7 @@ bool MasmParser::parseDirectiveIf(SMLoc DirectiveLoc, DirectiveKind DirKind) {
eatToEndOfStatement();
} else {
int64_t ExprValue;
- if (parseAbsoluteExpression(ExprValue) ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.if' directive"))
+ if (parseAbsoluteExpression(ExprValue) || parseEOL())
return true;
switch (DirKind) {
@@ -6238,8 +6228,7 @@ bool MasmParser::parseDirectiveIfb(SMLoc DirectiveLoc, bool ExpectBlank) {
if (parseTextItem(Str))
return TokError("expected text item parameter for 'ifb' directive");
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'ifb' directive"))
+ if (parseEOL())
return true;
TheCondState.CondMet = ExpectBlank == Str.empty();
@@ -6305,7 +6294,7 @@ bool MasmParser::parseDirectiveIfdef(SMLoc DirectiveLoc, bool expect_defined) {
if (!is_defined) {
StringRef Name;
if (check(parseIdentifier(Name), "expected identifier after 'ifdef'") ||
- parseToken(AsmToken::EndOfStatement, "unexpected token in 'ifdef'"))
+ parseEOL())
return true;
if (BuiltinSymbolMap.find(Name.lower()) != BuiltinSymbolMap.end()) {
@@ -6346,8 +6335,7 @@ bool MasmParser::parseDirectiveElseIf(SMLoc DirectiveLoc,
if (parseAbsoluteExpression(ExprValue))
return true;
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.elseif' directive"))
+ if (parseEOL())
return true;
switch (DirKind) {
@@ -6390,8 +6378,7 @@ bool MasmParser::parseDirectiveElseIfb(SMLoc DirectiveLoc, bool ExpectBlank) {
return TokError("expected text item parameter for 'elseifnb' directive");
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'elseifb' directive"))
+ if (parseEOL())
return true;
TheCondState.CondMet = ExpectBlank == Str.empty();
@@ -6428,8 +6415,7 @@ bool MasmParser::parseDirectiveElseIfdef(SMLoc DirectiveLoc,
StringRef Name;
if (check(parseIdentifier(Name),
"expected identifier after 'elseifdef'") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'elseifdef'"))
+ parseEOL())
return true;
if (BuiltinSymbolMap.find(Name.lower()) != BuiltinSymbolMap.end()) {
@@ -6505,8 +6491,7 @@ bool MasmParser::parseDirectiveElseIfidn(SMLoc DirectiveLoc, bool ExpectEqual,
/// parseDirectiveElse
/// ::= else
bool MasmParser::parseDirectiveElse(SMLoc DirectiveLoc) {
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'else' directive"))
+ if (parseEOL())
return true;
if (TheCondState.TheCond != AsmCond::IfCond &&
@@ -6528,8 +6513,7 @@ bool MasmParser::parseDirectiveElse(SMLoc DirectiveLoc) {
/// parseDirectiveEnd
/// ::= end
bool MasmParser::parseDirectiveEnd(SMLoc DirectiveLoc) {
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in 'end' directive"))
+ if (parseEOL())
return true;
while (Lexer.isNot(AsmToken::Eof))
@@ -6717,8 +6701,7 @@ bool MasmParser::parseDirectiveErrorIfe(SMLoc DirectiveLoc, bool ExpectZero) {
/// parseDirectiveEndIf
/// ::= .endif
bool MasmParser::parseDirectiveEndIf(SMLoc DirectiveLoc) {
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.endif' directive"))
+ if (parseEOL())
return true;
if ((TheCondState.TheCond == AsmCond::NoCond) || TheCondStack.empty())
@@ -7012,9 +6995,7 @@ bool MasmParser::parseDirectiveRepeat(SMLoc DirectiveLoc, StringRef Dir) {
return Error(CountLoc, "unexpected token in '" + Dir + "' directive");
}
- if (check(Count < 0, CountLoc, "Count is negative") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected token in '" + Dir + "' directive"))
+ if (check(Count < 0, CountLoc, "Count is negative") || parseEOL())
return true;
// Lex the repeat definition.
@@ -7129,7 +7110,7 @@ bool MasmParser::parseDirectiveFor(SMLoc DirectiveLoc, StringRef Dir) {
if (parseToken(AsmToken::Greater,
"values in '" + Dir +
"' directive must be enclosed in angle brackets") ||
- parseToken(AsmToken::EndOfStatement, "expected End of Statement"))
+ parseEOL())
return true;
// Lex the for definition.
@@ -7179,7 +7160,7 @@ bool MasmParser::parseDirectiveForc(SMLoc DirectiveLoc, StringRef Directive) {
}
Argument.resize(End);
}
- if (parseToken(AsmToken::EndOfStatement, "expected end of statement"))
+ if (parseEOL())
return true;
// Lex the irpc definition.
diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
index 30d18a1ca2e14..ee08cf5e1502c 100644
--- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
+++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
@@ -5491,8 +5491,7 @@ bool AMDGPUAsmParser::ParseDirectiveAMDGPULDS() {
return Error(AlignLoc, "alignment is too large");
}
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.amdgpu_lds' directive"))
+ if (parseEOL())
return true;
Symbol->redefineIfPossible();
diff --git a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
index 6b9058798728e..522156abc88ba 100644
--- a/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
+++ b/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
@@ -11302,8 +11302,7 @@ bool ARMAsmParser::parseDirectiveReq(StringRef Name, SMLoc L) {
SMLoc SRegLoc, ERegLoc;
if (check(ParseRegister(Reg, SRegLoc, ERegLoc), SRegLoc,
"register name expected") ||
- parseToken(AsmToken::EndOfStatement,
- "unexpected input in .req directive."))
+ parseEOL())
return true;
if (RegisterReqs.insert(std::make_pair(Name, Reg)).first->second != Reg)
@@ -11321,10 +11320,7 @@ bool ARMAsmParser::parseDirectiveUnreq(SMLoc L) {
return Error(L, "unexpected input in .unreq directive.");
RegisterReqs.erase(Parser.getTok().getIdentifier().lower());
Parser.Lex(); // Eat the identifier.
- if (parseToken(AsmToken::EndOfStatement,
- "unexpected input in '.unreq' directive"))
- return true;
- return false;
+ return parseEOL();
}
// After changing arch/CPU, try to put the ARM/Thumb mode back to what it was
diff --git a/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp b/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
index 0d27187d444ed..63a60473d664d 100644
--- a/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
+++ b/llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp
@@ -1686,8 +1686,7 @@ bool CSKYAsmParser::parseDirectiveAttribute() {
Parser.Lex();
}
- if (Parser.parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.csky_attribute' directive"))
+ if (Parser.parseEOL())
return true;
if (IsIntegerValue)
diff --git a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
index 08f0d062d215a..ecae1359bb37a 100644
--- a/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
+++ b/llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp
@@ -2225,8 +2225,7 @@ bool RISCVAsmParser::parseDirectiveAttribute() {
Parser.Lex();
}
- if (Parser.parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.attribute' directive"))
+ if (Parser.parseEOL())
return true;
if (IsIntegerValue)
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index a21ed9bcede40..0561f995047a6 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -4902,8 +4902,7 @@ bool X86AsmParser::parseDirectiveNops(SMLoc L) {
if (getParser().parseAbsoluteExpression(Control))
return true;
}
- if (getParser().parseToken(AsmToken::EndOfStatement,
- "unexpected token in '.nops' directive"))
+ if (getParser().parseEOL())
return true;
if (NumBytes <= 0) {
@@ -4925,7 +4924,7 @@ bool X86AsmParser::parseDirectiveNops(SMLoc L) {
/// parseDirectiveEven
/// ::= .even
bool X86AsmParser::parseDirectiveEven(SMLoc L) {
- if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
+ if (parseEOL())
return false;
const MCSection *Section = getStreamer().getCurrentSectionOnly();
diff --git a/llvm/test/MC/ARM/directive_parsing.s b/llvm/test/MC/ARM/directive_parsing.s
index 33793bfd54e75..90d15ef92d9d5 100644
--- a/llvm/test/MC/ARM/directive_parsing.s
+++ b/llvm/test/MC/ARM/directive_parsing.s
@@ -37,7 +37,7 @@
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.syntax unified @ EOL COMMENT
fred .req r5
-// CHECK: [[@LINE+1]]:14: error: unexpected input in '.unreq' directive
+// CHECK: :[[#@LINE+1]]:14: error: expected newline
.unreq fred $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.unreq fred @ EOL COMMENTS
More information about the llvm-commits
mailing list