Skip to content

Commit 8c911f8

Browse files
committed
[ARM][MC] Change EndOfStatement "unexpected tokens in .xxx directive " to "expected newline"
The directive name is not useful because the next line replicates the error line which includes the directive. The prevailing style uses "expected newline".
1 parent 8f7b148 commit 8c911f8

File tree

4 files changed

+50
-71
lines changed

4 files changed

+50
-71
lines changed

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

Lines changed: 22 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -11162,8 +11162,7 @@ bool ARMAsmParser::parseLiteralValues(unsigned Size, SMLoc L) {
1116211162
/// parseDirectiveThumb
1116311163
/// ::= .thumb
1116411164
bool ARMAsmParser::parseDirectiveThumb(SMLoc L) {
11165-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive") ||
11166-
check(!hasThumb(), L, "target does not support Thumb mode"))
11165+
if (parseEOL() || check(!hasThumb(), L, "target does not support Thumb mode"))
1116711166
return true;
1116811167

1116911168
if (!isThumb())
@@ -11176,8 +11175,7 @@ bool ARMAsmParser::parseDirectiveThumb(SMLoc L) {
1117611175
/// parseDirectiveARM
1117711176
/// ::= .arm
1117811177
bool ARMAsmParser::parseDirectiveARM(SMLoc L) {
11179-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive") ||
11180-
check(!hasARM(), L, "target does not support ARM mode"))
11178+
if (parseEOL() || check(!hasARM(), L, "target does not support ARM mode"))
1118111179
return true;
1118211180

1118311181
if (isThumb())
@@ -11216,15 +11214,13 @@ bool ARMAsmParser::parseDirectiveThumbFunc(SMLoc L) {
1121611214
Parser.getTok().getIdentifier());
1121711215
getParser().getStreamer().emitThumbFunc(Func);
1121811216
Parser.Lex();
11219-
if (parseToken(AsmToken::EndOfStatement,
11220-
"unexpected token in '.thumb_func' directive"))
11217+
if (parseEOL())
1122111218
return true;
1122211219
return false;
1122311220
}
1122411221
}
1122511222

11226-
if (parseToken(AsmToken::EndOfStatement,
11227-
"unexpected token in '.thumb_func' directive"))
11223+
if (parseEOL())
1122811224
return true;
1122911225

1123011226
// .thumb_func implies .thumb
@@ -11253,7 +11249,7 @@ bool ARMAsmParser::parseDirectiveSyntax(SMLoc L) {
1125311249
"'.syntax divided' arm assembly not supported") ||
1125411250
check(Mode != "unified" && Mode != "UNIFIED", L,
1125511251
"unrecognized syntax mode in .syntax directive") ||
11256-
parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
11252+
parseEOL())
1125711253
return true;
1125811254

1125911255
// TODO tell the MC streamer the mode
@@ -11275,7 +11271,7 @@ bool ARMAsmParser::parseDirectiveCode(SMLoc L) {
1127511271
}
1127611272
Parser.Lex();
1127711273

11278-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
11274+
if (parseEOL())
1127911275
return true;
1128011276

1128111277
if (Val == 16) {
@@ -11455,8 +11451,7 @@ bool ARMAsmParser::parseDirectiveEabiAttr(SMLoc L) {
1145511451
Parser.Lex();
1145611452
}
1145711453

11458-
if (Parser.parseToken(AsmToken::EndOfStatement,
11459-
"unexpected token in '.eabi_attribute' directive"))
11454+
if (Parser.parseEOL())
1146011455
return true;
1146111456

1146211457
if (IsIntegerValue && IsStringValue) {
@@ -11512,8 +11507,7 @@ bool ARMAsmParser::parseDirectiveFPU(SMLoc L) {
1151211507
/// parseDirectiveFnStart
1151311508
/// ::= .fnstart
1151411509
bool ARMAsmParser::parseDirectiveFnStart(SMLoc L) {
11515-
if (parseToken(AsmToken::EndOfStatement,
11516-
"unexpected token in '.fnstart' directive"))
11510+
if (parseEOL())
1151711511
return true;
1151811512

1151911513
if (UC.hasFnStart()) {
@@ -11534,8 +11528,7 @@ bool ARMAsmParser::parseDirectiveFnStart(SMLoc L) {
1153411528
/// parseDirectiveFnEnd
1153511529
/// ::= .fnend
1153611530
bool ARMAsmParser::parseDirectiveFnEnd(SMLoc L) {
11537-
if (parseToken(AsmToken::EndOfStatement,
11538-
"unexpected token in '.fnend' directive"))
11531+
if (parseEOL())
1153911532
return true;
1154011533
// Check the ordering of unwind directives
1154111534
if (!UC.hasFnStart())
@@ -11551,8 +11544,7 @@ bool ARMAsmParser::parseDirectiveFnEnd(SMLoc L) {
1155111544
/// parseDirectiveCantUnwind
1155211545
/// ::= .cantunwind
1155311546
bool ARMAsmParser::parseDirectiveCantUnwind(SMLoc L) {
11554-
if (parseToken(AsmToken::EndOfStatement,
11555-
"unexpected token in '.cantunwind' directive"))
11547+
if (parseEOL())
1155611548
return true;
1155711549

1155811550
UC.recordCantUnwind(L);
@@ -11587,8 +11579,7 @@ bool ARMAsmParser::parseDirectivePersonality(SMLoc L) {
1158711579
StringRef Name(Parser.getTok().getIdentifier());
1158811580
Parser.Lex();
1158911581

11590-
if (parseToken(AsmToken::EndOfStatement,
11591-
"unexpected token in '.personality' directive"))
11582+
if (parseEOL())
1159211583
return true;
1159311584

1159411585
UC.recordPersonality(L);
@@ -11620,8 +11611,7 @@ bool ARMAsmParser::parseDirectivePersonality(SMLoc L) {
1162011611
/// parseDirectiveHandlerData
1162111612
/// ::= .handlerdata
1162211613
bool ARMAsmParser::parseDirectiveHandlerData(SMLoc L) {
11623-
if (parseToken(AsmToken::EndOfStatement,
11624-
"unexpected token in '.handlerdata' directive"))
11614+
if (parseEOL())
1162511615
return true;
1162611616

1162711617
UC.recordHandlerData(L);
@@ -11719,8 +11709,7 @@ bool ARMAsmParser::parseDirectivePad(SMLoc L) {
1171911709
if (!CE)
1172011710
return Error(ExLoc, "pad offset must be an immediate");
1172111711

11722-
if (parseToken(AsmToken::EndOfStatement,
11723-
"unexpected token in '.pad' directive"))
11712+
if (parseEOL())
1172411713
return true;
1172511714

1172611715
getTargetStreamer().emitPad(CE->getValue());
@@ -11741,8 +11730,7 @@ bool ARMAsmParser::parseDirectiveRegSave(SMLoc L, bool IsVector) {
1174111730
SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands;
1174211731

1174311732
// Parse the register list
11744-
if (parseRegisterList(Operands, true, true) ||
11745-
parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
11733+
if (parseRegisterList(Operands, true, true) || parseEOL())
1174611734
return true;
1174711735
ARMOperand &Op = (ARMOperand &)*Operands[0];
1174811736
if (!IsVector && !Op.isRegList())
@@ -11825,7 +11813,7 @@ bool ARMAsmParser::parseDirectiveInst(SMLoc Loc, char Suffix) {
1182511813
/// parseDirectiveLtorg
1182611814
/// ::= .ltorg | .pool
1182711815
bool ARMAsmParser::parseDirectiveLtorg(SMLoc L) {
11828-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
11816+
if (parseEOL())
1182911817
return true;
1183011818
getTargetStreamer().emitCurrentConstantPool();
1183111819
return false;
@@ -11834,7 +11822,7 @@ bool ARMAsmParser::parseDirectiveLtorg(SMLoc L) {
1183411822
bool ARMAsmParser::parseDirectiveEven(SMLoc L) {
1183511823
const MCSection *Section = getStreamer().getCurrentSectionOnly();
1183611824

11837-
if (parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
11825+
if (parseEOL())
1183811826
return true;
1183911827

1184011828
if (!Section) {
@@ -11859,9 +11847,7 @@ bool ARMAsmParser::parseDirectivePersonalityIndex(SMLoc L) {
1185911847

1186011848
const MCExpr *IndexExpression;
1186111849
SMLoc IndexLoc = Parser.getTok().getLoc();
11862-
if (Parser.parseExpression(IndexExpression) ||
11863-
parseToken(AsmToken::EndOfStatement,
11864-
"unexpected token in '.personalityindex' directive")) {
11850+
if (Parser.parseExpression(IndexExpression) || parseEOL()) {
1186511851
return true;
1186611852
}
1186711853

@@ -11962,8 +11948,7 @@ bool ARMAsmParser::parseDirectiveTLSDescSeq(SMLoc L) {
1196211948
MCSymbolRefExpr::VK_ARM_TLSDESCSEQ, getContext());
1196311949
Lex();
1196411950

11965-
if (parseToken(AsmToken::EndOfStatement,
11966-
"unexpected token in '.tlsdescseq' directive"))
11951+
if (parseEOL())
1196711952
return true;
1196811953

1196911954
getTargetStreamer().AnnotateTLSDescriptorSequence(SRE);
@@ -12004,8 +11989,7 @@ bool ARMAsmParser::parseDirectiveMovSP(SMLoc L) {
1200411989
Offset = CE->getValue();
1200511990
}
1200611991

12007-
if (parseToken(AsmToken::EndOfStatement,
12008-
"unexpected token in '.movsp' directive"))
11992+
if (parseEOL())
1200911993
return true;
1201011994

1201111995
getTargetStreamer().emitMovSP(SPReg, Offset);
@@ -12092,8 +12076,7 @@ bool ARMAsmParser::parseDirectiveSEHAllocStack(SMLoc L, bool Wide) {
1209212076
bool ARMAsmParser::parseDirectiveSEHSaveRegs(SMLoc L, bool Wide) {
1209312077
SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands;
1209412078

12095-
if (parseRegisterList(Operands) ||
12096-
parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
12079+
if (parseRegisterList(Operands) || parseEOL())
1209712080
return true;
1209812081
ARMOperand &Op = (ARMOperand &)*Operands[0];
1209912082
if (!Op.isRegList())
@@ -12135,8 +12118,7 @@ bool ARMAsmParser::parseDirectiveSEHSaveSP(SMLoc L) {
1213512118
bool ARMAsmParser::parseDirectiveSEHSaveFRegs(SMLoc L) {
1213612119
SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands;
1213712120

12138-
if (parseRegisterList(Operands) ||
12139-
parseToken(AsmToken::EndOfStatement, "unexpected token in directive"))
12121+
if (parseRegisterList(Operands) || parseEOL())
1214012122
return true;
1214112123
ARMOperand &Op = (ARMOperand &)*Operands[0];
1214212124
if (!Op.isDPRRegList())
@@ -12558,8 +12540,7 @@ bool ARMAsmParser::parseDirectiveArchExtension(SMLoc L) {
1255812540
SMLoc ExtLoc = Parser.getTok().getLoc();
1255912541
Lex();
1256012542

12561-
if (parseToken(AsmToken::EndOfStatement,
12562-
"unexpected token in '.arch_extension' directive"))
12543+
if (parseEOL())
1256312544
return true;
1256412545

1256512546
if (Name == "nocrypto") {

llvm/test/MC/ARM/directive-thumb_func.s

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@
1010
no_suffix:
1111
bx lr
1212

13+
// CHECK-EABI: :[[#@LINE+3]]:14: error: expected newline
14+
// CHECK-EABI: .thumb_func suffix
15+
// CHECK-EABI: ^
1316
.thumb_func suffix
1417
suffix:
1518
bx lr
1619

17-
// CHECK-EABI: error: unexpected token in '.thumb_func' directive
18-
// CHECK-EABI: .thumb_func suffix
19-
// CHECK-EABI: ^
2020

2121
// CHECK-EABI-NOT: error: invalid instruction
2222

llvm/test/MC/ARM/directive-tlsdescseq-diagnostics.s

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,16 +12,14 @@ missing_variable:
1212
.type bad_expression,%function
1313
bad_expression:
1414
.tlsdescseq variable(tlsdesc)
15-
16-
@ CHECK: error: unexpected token
15+
@ CHECK: :[[#@LINE-1]]:21: error: expected newline
1716
@ CHECK: .tlsdescseq variable(tlsdesc)
1817
@ CHECK: ^
1918

2019
.type trailing_garbage,%function
2120
trailing_garbage:
2221
.tlsdescseq variable,
23-
24-
@ CHECK: error: unexpected token
22+
@ CHECK: :[[#@LINE-1]]:21: error: expected newline
2523
@ CHECK: .tlsdescseq variable,
2624
@ CHECK: ^
2725

0 commit comments

Comments
 (0)