Skip to content

Commit 77e300f

Browse files
committed
[MC] Change EndOfStatement "unexpected tokens in .xxx directive " to "expected newline"
1 parent 8c911f8 commit 77e300f

File tree

8 files changed

+34
-65
lines changed

8 files changed

+34
-65
lines changed

llvm/lib/MC/MCParser/AsmParser.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3753,8 +3753,7 @@ bool AsmParser::parseDirectiveCVFile() {
37533753
parseEscapedString(Checksum) ||
37543754
parseIntToken(ChecksumKind,
37553755
"expected checksum kind in '.cv_file' directive") ||
3756-
parseToken(AsmToken::EndOfStatement,
3757-
"unexpected token in '.cv_file' directive"))
3756+
parseEOL())
37583757
return true;
37593758
}
37603759

@@ -3800,9 +3799,7 @@ bool AsmParser::parseDirectiveCVFuncId() {
38003799
SMLoc FunctionIdLoc = getTok().getLoc();
38013800
int64_t FunctionId;
38023801

3803-
if (parseCVFunctionId(FunctionId, ".cv_func_id") ||
3804-
parseToken(AsmToken::EndOfStatement,
3805-
"unexpected token in '.cv_func_id' directive"))
3802+
if (parseCVFunctionId(FunctionId, ".cv_func_id") || parseEOL())
38063803
return true;
38073804

38083805
if (!getStreamer().emitCVFuncIdDirective(FunctionId))
@@ -3861,8 +3858,7 @@ bool AsmParser::parseDirectiveCVInlineSiteId() {
38613858
Lex();
38623859
}
38633860

3864-
if (parseToken(AsmToken::EndOfStatement,
3865-
"unexpected token in '.cv_inline_site_id' directive"))
3861+
if (parseEOL())
38663862
return true;
38673863

38683864
if (!getStreamer().emitCVInlineSiteIdDirective(FunctionId, IAFunc, IAFile,
@@ -3986,7 +3982,7 @@ bool AsmParser::parseDirectiveCVInlineLinetable() {
39863982
"expected identifier in directive"))
39873983
return true;
39883984

3989-
if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
3985+
if (parseEOL())
39903986
return true;
39913987

39923988
MCSymbol *FnStartSym = getContext().getOrCreateSymbol(FnStartName);
@@ -4147,7 +4143,7 @@ bool AsmParser::parseDirectiveCVFileChecksumOffset() {
41474143
int64_t FileNo;
41484144
if (parseIntToken(FileNo, "expected identifier in directive"))
41494145
return true;
4150-
if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
4146+
if (parseEOL())
41514147
return true;
41524148
getStreamer().emitCVFileChecksumOffsetDirective(FileNo);
41534149
return false;

llvm/lib/MC/MCParser/MasmParser.cpp

Lines changed: 21 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4949,8 +4949,7 @@ bool MasmParser::parseDirectiveLine() {
49494949
(void)LineNumber;
49504950
// FIXME: Do something with the .line.
49514951
}
4952-
if (parseToken(AsmToken::EndOfStatement,
4953-
"unexpected token in '.line' directive"))
4952+
if (parseEOL())
49544953
return true;
49554954

49564955
return false;
@@ -5083,8 +5082,7 @@ bool MasmParser::parseDirectiveCVFile() {
50835082
parseEscapedString(Checksum) ||
50845083
parseIntToken(ChecksumKind,
50855084
"expected checksum kind in '.cv_file' directive") ||
5086-
parseToken(AsmToken::EndOfStatement,
5087-
"unexpected token in '.cv_file' directive"))
5085+
parseEOL())
50885086
return true;
50895087
}
50905088

@@ -5130,9 +5128,7 @@ bool MasmParser::parseDirectiveCVFuncId() {
51305128
SMLoc FunctionIdLoc = getTok().getLoc();
51315129
int64_t FunctionId;
51325130

5133-
if (parseCVFunctionId(FunctionId, ".cv_func_id") ||
5134-
parseToken(AsmToken::EndOfStatement,
5135-
"unexpected token in '.cv_func_id' directive"))
5131+
if (parseCVFunctionId(FunctionId, ".cv_func_id") || parseEOL())
51365132
return true;
51375133

51385134
if (!getStreamer().emitCVFuncIdDirective(FunctionId))
@@ -5191,8 +5187,7 @@ bool MasmParser::parseDirectiveCVInlineSiteId() {
51915187
Lex();
51925188
}
51935189

5194-
if (parseToken(AsmToken::EndOfStatement,
5195-
"unexpected token in '.cv_inline_site_id' directive"))
5190+
if (parseEOL())
51965191
return true;
51975192

51985193
if (!getStreamer().emitCVInlineSiteIdDirective(FunctionId, IAFunc, IAFile,
@@ -5318,7 +5313,7 @@ bool MasmParser::parseDirectiveCVInlineLinetable() {
53185313
"expected identifier in directive"))
53195314
return true;
53205315

5321-
if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
5316+
if (parseEOL())
53225317
return true;
53235318

53245319
MCSymbol *FnStartSym = getContext().getOrCreateSymbol(FnStartName);
@@ -5479,7 +5474,7 @@ bool MasmParser::parseDirectiveCVFileChecksumOffset() {
54795474
int64_t FileNo;
54805475
if (parseIntToken(FileNo, "expected identifier in directive"))
54815476
return true;
5482-
if (parseToken(AsmToken::EndOfStatement, "Expected End of Statement"))
5477+
if (parseEOL())
54835478
return true;
54845479
getStreamer().emitCVFileChecksumOffsetDirective(FileNo);
54855480
return false;
@@ -5788,8 +5783,7 @@ bool MasmParser::parseDirectiveCFIReturnColumn(SMLoc DirectiveLoc) {
57885783
/// parseDirectiveCFISignalFrame
57895784
/// ::= .cfi_signal_frame
57905785
bool MasmParser::parseDirectiveCFISignalFrame() {
5791-
if (parseToken(AsmToken::EndOfStatement,
5792-
"unexpected token in '.cfi_signal_frame'"))
5786+
if (parseEOL())
57935787
return true;
57945788

57955789
getStreamer().emitCFISignalFrame();
@@ -6121,8 +6115,7 @@ bool MasmParser::parseDirectiveComm(bool IsLocal) {
61216115
}
61226116
}
61236117

6124-
if (parseToken(AsmToken::EndOfStatement,
6125-
"unexpected token in '.comm' or '.lcomm' directive"))
6118+
if (parseEOL())
61266119
return true;
61276120

61286121
// NOTE: a size of zero for a .comm should create a undefined symbol
@@ -6168,8 +6161,7 @@ bool MasmParser::parseDirectiveComment(SMLoc DirectiveLoc) {
61686161
Lex(); // eat end of statement
61696162
} while (
61706163
!StringRef(parseStringTo(AsmToken::EndOfStatement)).contains(Delimiter));
6171-
return parseToken(AsmToken::EndOfStatement,
6172-
"unexpected token in 'comment' directive");
6164+
return parseEOL();
61736165
}
61746166

61756167
/// parseDirectiveInclude
@@ -6203,9 +6195,7 @@ bool MasmParser::parseDirectiveIf(SMLoc DirectiveLoc, DirectiveKind DirKind) {
62036195
eatToEndOfStatement();
62046196
} else {
62056197
int64_t ExprValue;
6206-
if (parseAbsoluteExpression(ExprValue) ||
6207-
parseToken(AsmToken::EndOfStatement,
6208-
"unexpected token in '.if' directive"))
6198+
if (parseAbsoluteExpression(ExprValue) || parseEOL())
62096199
return true;
62106200

62116201
switch (DirKind) {
@@ -6238,8 +6228,7 @@ bool MasmParser::parseDirectiveIfb(SMLoc DirectiveLoc, bool ExpectBlank) {
62386228
if (parseTextItem(Str))
62396229
return TokError("expected text item parameter for 'ifb' directive");
62406230

6241-
if (parseToken(AsmToken::EndOfStatement,
6242-
"unexpected token in 'ifb' directive"))
6231+
if (parseEOL())
62436232
return true;
62446233

62456234
TheCondState.CondMet = ExpectBlank == Str.empty();
@@ -6305,7 +6294,7 @@ bool MasmParser::parseDirectiveIfdef(SMLoc DirectiveLoc, bool expect_defined) {
63056294
if (!is_defined) {
63066295
StringRef Name;
63076296
if (check(parseIdentifier(Name), "expected identifier after 'ifdef'") ||
6308-
parseToken(AsmToken::EndOfStatement, "unexpected token in 'ifdef'"))
6297+
parseEOL())
63096298
return true;
63106299

63116300
if (BuiltinSymbolMap.find(Name.lower()) != BuiltinSymbolMap.end()) {
@@ -6346,8 +6335,7 @@ bool MasmParser::parseDirectiveElseIf(SMLoc DirectiveLoc,
63466335
if (parseAbsoluteExpression(ExprValue))
63476336
return true;
63486337

6349-
if (parseToken(AsmToken::EndOfStatement,
6350-
"unexpected token in '.elseif' directive"))
6338+
if (parseEOL())
63516339
return true;
63526340

63536341
switch (DirKind) {
@@ -6390,8 +6378,7 @@ bool MasmParser::parseDirectiveElseIfb(SMLoc DirectiveLoc, bool ExpectBlank) {
63906378
return TokError("expected text item parameter for 'elseifnb' directive");
63916379
}
63926380

6393-
if (parseToken(AsmToken::EndOfStatement,
6394-
"unexpected token in 'elseifb' directive"))
6381+
if (parseEOL())
63956382
return true;
63966383

63976384
TheCondState.CondMet = ExpectBlank == Str.empty();
@@ -6428,8 +6415,7 @@ bool MasmParser::parseDirectiveElseIfdef(SMLoc DirectiveLoc,
64286415
StringRef Name;
64296416
if (check(parseIdentifier(Name),
64306417
"expected identifier after 'elseifdef'") ||
6431-
parseToken(AsmToken::EndOfStatement,
6432-
"unexpected token in 'elseifdef'"))
6418+
parseEOL())
64336419
return true;
64346420

64356421
if (BuiltinSymbolMap.find(Name.lower()) != BuiltinSymbolMap.end()) {
@@ -6505,8 +6491,7 @@ bool MasmParser::parseDirectiveElseIfidn(SMLoc DirectiveLoc, bool ExpectEqual,
65056491
/// parseDirectiveElse
65066492
/// ::= else
65076493
bool MasmParser::parseDirectiveElse(SMLoc DirectiveLoc) {
6508-
if (parseToken(AsmToken::EndOfStatement,
6509-
"unexpected token in 'else' directive"))
6494+
if (parseEOL())
65106495
return true;
65116496

65126497
if (TheCondState.TheCond != AsmCond::IfCond &&
@@ -6528,8 +6513,7 @@ bool MasmParser::parseDirectiveElse(SMLoc DirectiveLoc) {
65286513
/// parseDirectiveEnd
65296514
/// ::= end
65306515
bool MasmParser::parseDirectiveEnd(SMLoc DirectiveLoc) {
6531-
if (parseToken(AsmToken::EndOfStatement,
6532-
"unexpected token in 'end' directive"))
6516+
if (parseEOL())
65336517
return true;
65346518

65356519
while (Lexer.isNot(AsmToken::Eof))
@@ -6717,8 +6701,7 @@ bool MasmParser::parseDirectiveErrorIfe(SMLoc DirectiveLoc, bool ExpectZero) {
67176701
/// parseDirectiveEndIf
67186702
/// ::= .endif
67196703
bool MasmParser::parseDirectiveEndIf(SMLoc DirectiveLoc) {
6720-
if (parseToken(AsmToken::EndOfStatement,
6721-
"unexpected token in '.endif' directive"))
6704+
if (parseEOL())
67226705
return true;
67236706

67246707
if ((TheCondState.TheCond == AsmCond::NoCond) || TheCondStack.empty())
@@ -7012,9 +6995,7 @@ bool MasmParser::parseDirectiveRepeat(SMLoc DirectiveLoc, StringRef Dir) {
70126995
return Error(CountLoc, "unexpected token in '" + Dir + "' directive");
70136996
}
70146997

7015-
if (check(Count < 0, CountLoc, "Count is negative") ||
7016-
parseToken(AsmToken::EndOfStatement,
7017-
"unexpected token in '" + Dir + "' directive"))
6998+
if (check(Count < 0, CountLoc, "Count is negative") || parseEOL())
70186999
return true;
70197000

70207001
// Lex the repeat definition.
@@ -7129,7 +7110,7 @@ bool MasmParser::parseDirectiveFor(SMLoc DirectiveLoc, StringRef Dir) {
71297110
if (parseToken(AsmToken::Greater,
71307111
"values in '" + Dir +
71317112
"' directive must be enclosed in angle brackets") ||
7132-
parseToken(AsmToken::EndOfStatement, "expected End of Statement"))
7113+
parseEOL())
71337114
return true;
71347115

71357116
// Lex the for definition.
@@ -7179,7 +7160,7 @@ bool MasmParser::parseDirectiveForc(SMLoc DirectiveLoc, StringRef Directive) {
71797160
}
71807161
Argument.resize(End);
71817162
}
7182-
if (parseToken(AsmToken::EndOfStatement, "expected end of statement"))
7163+
if (parseEOL())
71837164
return true;
71847165

71857166
// Lex the irpc definition.

llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5491,8 +5491,7 @@ bool AMDGPUAsmParser::ParseDirectiveAMDGPULDS() {
54915491
return Error(AlignLoc, "alignment is too large");
54925492
}
54935493

5494-
if (parseToken(AsmToken::EndOfStatement,
5495-
"unexpected token in '.amdgpu_lds' directive"))
5494+
if (parseEOL())
54965495
return true;
54975496

54985497
Symbol->redefineIfPossible();

llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11302,8 +11302,7 @@ bool ARMAsmParser::parseDirectiveReq(StringRef Name, SMLoc L) {
1130211302
SMLoc SRegLoc, ERegLoc;
1130311303
if (check(ParseRegister(Reg, SRegLoc, ERegLoc), SRegLoc,
1130411304
"register name expected") ||
11305-
parseToken(AsmToken::EndOfStatement,
11306-
"unexpected input in .req directive."))
11305+
parseEOL())
1130711306
return true;
1130811307

1130911308
if (RegisterReqs.insert(std::make_pair(Name, Reg)).first->second != Reg)
@@ -11321,10 +11320,7 @@ bool ARMAsmParser::parseDirectiveUnreq(SMLoc L) {
1132111320
return Error(L, "unexpected input in .unreq directive.");
1132211321
RegisterReqs.erase(Parser.getTok().getIdentifier().lower());
1132311322
Parser.Lex(); // Eat the identifier.
11324-
if (parseToken(AsmToken::EndOfStatement,
11325-
"unexpected input in '.unreq' directive"))
11326-
return true;
11327-
return false;
11323+
return parseEOL();
1132811324
}
1132911325

1133011326
// After changing arch/CPU, try to put the ARM/Thumb mode back to what it was

llvm/lib/Target/CSKY/AsmParser/CSKYAsmParser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1686,8 +1686,7 @@ bool CSKYAsmParser::parseDirectiveAttribute() {
16861686
Parser.Lex();
16871687
}
16881688

1689-
if (Parser.parseToken(AsmToken::EndOfStatement,
1690-
"unexpected token in '.csky_attribute' directive"))
1689+
if (Parser.parseEOL())
16911690
return true;
16921691

16931692
if (IsIntegerValue)

llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2225,8 +2225,7 @@ bool RISCVAsmParser::parseDirectiveAttribute() {
22252225
Parser.Lex();
22262226
}
22272227

2228-
if (Parser.parseToken(AsmToken::EndOfStatement,
2229-
"unexpected token in '.attribute' directive"))
2228+
if (Parser.parseEOL())
22302229
return true;
22312230

22322231
if (IsIntegerValue)

llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4902,8 +4902,7 @@ bool X86AsmParser::parseDirectiveNops(SMLoc L) {
49024902
if (getParser().parseAbsoluteExpression(Control))
49034903
return true;
49044904
}
4905-
if (getParser().parseToken(AsmToken::EndOfStatement,
4906-
"unexpected token in '.nops' directive"))
4905+
if (getParser().parseEOL())
49074906
return true;
49084907

49094908
if (NumBytes <= 0) {
@@ -4925,7 +4924,7 @@ bool X86AsmParser::parseDirectiveNops(SMLoc L) {
49254924
/// parseDirectiveEven
49264925
/// ::= .even
49274926
bool X86AsmParser::parseDirectiveEven(SMLoc L) {
4928-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
4927+
if (parseEOL())
49294928
return false;
49304929

49314930
const MCSection *Section = getStreamer().getCurrentSectionOnly();

llvm/test/MC/ARM/directive_parsing.s

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
3838
.syntax unified @ EOL COMMENT
3939
fred .req r5
40-
// CHECK: [[@LINE+1]]:14: error: unexpected input in '.unreq' directive
40+
// CHECK: :[[#@LINE+1]]:14: error: expected newline
4141
.unreq fred $
4242
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
4343
.unreq fred @ EOL COMMENTS

0 commit comments

Comments
 (0)