@@ -3216,8 +3216,7 @@ bool AsmParser::parseDirectiveZero() {
3216
3216
return true ;
3217
3217
}
3218
3218
3219
- if (parseToken (AsmToken::EndOfStatement,
3220
- " unexpected token in '.zero' directive" ))
3219
+ if (parseEOL ())
3221
3220
return true ;
3222
3221
getStreamer ().emitFill (*NumBytes, Val, NumBytesLoc);
3223
3222
@@ -3247,8 +3246,7 @@ bool AsmParser::parseDirectiveFill() {
3247
3246
return true ;
3248
3247
}
3249
3248
}
3250
- if (parseToken (AsmToken::EndOfStatement,
3251
- " unexpected token in '.fill' directive" ))
3249
+ if (parseEOL ())
3252
3250
return true ;
3253
3251
3254
3252
if (FillSize < 0 ) {
@@ -3281,7 +3279,7 @@ bool AsmParser::parseDirectiveOrg() {
3281
3279
if (parseOptionalToken (AsmToken::Comma))
3282
3280
if (parseAbsoluteExpression (FillExpr))
3283
3281
return addErrorSuffix (" in '.org' directive" );
3284
- if (parseToken (AsmToken::EndOfStatement ))
3282
+ if (parseEOL ( ))
3285
3283
return addErrorSuffix (" in '.org' directive" );
3286
3284
3287
3285
getStreamer ().emitValueToOffset (Offset, FillExpr, OffsetLoc);
@@ -3315,15 +3313,15 @@ bool AsmParser::parseDirectiveAlign(bool IsPow2, unsigned ValueSize) {
3315
3313
parseAbsoluteExpression (MaxBytesToFill))
3316
3314
return true ;
3317
3315
}
3318
- return parseToken (AsmToken::EndOfStatement );
3316
+ return parseEOL ( );
3319
3317
};
3320
3318
3321
3319
if (checkForValidSection ())
3322
3320
return addErrorSuffix (" in directive" );
3323
3321
// Ignore empty '.p2align' directives for GNU-as compatibility
3324
3322
if (IsPow2 && (ValueSize == 1 ) && getTok ().is (AsmToken::EndOfStatement)) {
3325
3323
Warning (AlignmentLoc, " p2align directive with no operand(s) is ignored" );
3326
- return parseToken (AsmToken::EndOfStatement );
3324
+ return parseEOL ( );
3327
3325
}
3328
3326
if (parseAlign ())
3329
3327
return addErrorSuffix (" in directive" );
@@ -4097,7 +4095,7 @@ bool AsmParser::parseDirectiveCFIStartProc() {
4097
4095
if (!parseOptionalToken (AsmToken::EndOfStatement)) {
4098
4096
if (check (parseIdentifier (Simple) || Simple != " simple" ,
4099
4097
" unexpected token" ) ||
4100
- parseToken (AsmToken::EndOfStatement ))
4098
+ parseEOL ( ))
4101
4099
return addErrorSuffix (" in '.cfi_startproc' directive" );
4102
4100
}
4103
4101
@@ -4113,7 +4111,7 @@ bool AsmParser::parseDirectiveCFIStartProc() {
4113
4111
// / parseDirectiveCFIEndProc
4114
4112
// / ::= .cfi_endproc
4115
4113
bool AsmParser::parseDirectiveCFIEndProc () {
4116
- if (parseToken (AsmToken::EndOfStatement ))
4114
+ if (parseEOL ( ))
4117
4115
return addErrorSuffix (" in '.cfi_endproc' directive" );
4118
4116
getStreamer ().emitCFIEndProc ();
4119
4117
return false ;
@@ -4140,7 +4138,7 @@ bool AsmParser::parseDirectiveCFIDefCfa(SMLoc DirectiveLoc) {
4140
4138
int64_t Register = 0 , Offset = 0 ;
4141
4139
if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4142
4140
parseToken (AsmToken::Comma, " unexpected token in directive" ) ||
4143
- parseAbsoluteExpression (Offset) || parseToken (AsmToken::EndOfStatement ))
4141
+ parseAbsoluteExpression (Offset) || parseEOL ( ))
4144
4142
return true ;
4145
4143
4146
4144
getStreamer ().emitCFIDefCfa (Register, Offset);
@@ -4151,7 +4149,7 @@ bool AsmParser::parseDirectiveCFIDefCfa(SMLoc DirectiveLoc) {
4151
4149
// / ::= .cfi_def_cfa_offset offset
4152
4150
bool AsmParser::parseDirectiveCFIDefCfaOffset () {
4153
4151
int64_t Offset = 0 ;
4154
- if (parseAbsoluteExpression (Offset) || parseToken (AsmToken::EndOfStatement ))
4152
+ if (parseAbsoluteExpression (Offset) || parseEOL ( ))
4155
4153
return true ;
4156
4154
4157
4155
getStreamer ().emitCFIDefCfaOffset (Offset);
@@ -4164,8 +4162,7 @@ bool AsmParser::parseDirectiveCFIRegister(SMLoc DirectiveLoc) {
4164
4162
int64_t Register1 = 0 , Register2 = 0 ;
4165
4163
if (parseRegisterOrRegisterNumber (Register1, DirectiveLoc) ||
4166
4164
parseToken (AsmToken::Comma, " unexpected token in directive" ) ||
4167
- parseRegisterOrRegisterNumber (Register2, DirectiveLoc) ||
4168
- parseToken (AsmToken::EndOfStatement))
4165
+ parseRegisterOrRegisterNumber (Register2, DirectiveLoc) || parseEOL ())
4169
4166
return true ;
4170
4167
4171
4168
getStreamer ().emitCFIRegister (Register1, Register2);
@@ -4175,7 +4172,7 @@ bool AsmParser::parseDirectiveCFIRegister(SMLoc DirectiveLoc) {
4175
4172
// / parseDirectiveCFIWindowSave
4176
4173
// / ::= .cfi_window_save
4177
4174
bool AsmParser::parseDirectiveCFIWindowSave () {
4178
- if (parseToken (AsmToken::EndOfStatement ))
4175
+ if (parseEOL ( ))
4179
4176
return true ;
4180
4177
getStreamer ().emitCFIWindowSave ();
4181
4178
return false ;
@@ -4185,8 +4182,7 @@ bool AsmParser::parseDirectiveCFIWindowSave() {
4185
4182
// / ::= .cfi_adjust_cfa_offset adjustment
4186
4183
bool AsmParser::parseDirectiveCFIAdjustCfaOffset () {
4187
4184
int64_t Adjustment = 0 ;
4188
- if (parseAbsoluteExpression (Adjustment) ||
4189
- parseToken (AsmToken::EndOfStatement))
4185
+ if (parseAbsoluteExpression (Adjustment) || parseEOL ())
4190
4186
return true ;
4191
4187
4192
4188
getStreamer ().emitCFIAdjustCfaOffset (Adjustment);
@@ -4197,8 +4193,7 @@ bool AsmParser::parseDirectiveCFIAdjustCfaOffset() {
4197
4193
// / ::= .cfi_def_cfa_register register
4198
4194
bool AsmParser::parseDirectiveCFIDefCfaRegister (SMLoc DirectiveLoc) {
4199
4195
int64_t Register = 0 ;
4200
- if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4201
- parseToken (AsmToken::EndOfStatement))
4196
+ if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) || parseEOL ())
4202
4197
return true ;
4203
4198
4204
4199
getStreamer ().emitCFIDefCfaRegister (Register);
@@ -4213,7 +4208,7 @@ bool AsmParser::parseDirectiveCFIOffset(SMLoc DirectiveLoc) {
4213
4208
4214
4209
if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4215
4210
parseToken (AsmToken::Comma, " unexpected token in directive" ) ||
4216
- parseAbsoluteExpression (Offset) || parseToken (AsmToken::EndOfStatement ))
4211
+ parseAbsoluteExpression (Offset) || parseEOL ( ))
4217
4212
return true ;
4218
4213
4219
4214
getStreamer ().emitCFIOffset (Register, Offset);
@@ -4227,7 +4222,7 @@ bool AsmParser::parseDirectiveCFIRelOffset(SMLoc DirectiveLoc) {
4227
4222
4228
4223
if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4229
4224
parseToken (AsmToken::Comma, " unexpected token in directive" ) ||
4230
- parseAbsoluteExpression (Offset) || parseToken (AsmToken::EndOfStatement ))
4225
+ parseAbsoluteExpression (Offset) || parseEOL ( ))
4231
4226
return true ;
4232
4227
4233
4228
getStreamer ().emitCFIRelOffset (Register, Offset);
@@ -4271,7 +4266,7 @@ bool AsmParser::parseDirectiveCFIPersonalityOrLsda(bool IsPersonality) {
4271
4266
if (check (!isValidEncoding (Encoding), " unsupported encoding." ) ||
4272
4267
parseToken (AsmToken::Comma, " unexpected token in directive" ) ||
4273
4268
check (parseIdentifier (Name), " expected identifier in directive" ) ||
4274
- parseToken (AsmToken::EndOfStatement ))
4269
+ parseEOL ( ))
4275
4270
return true ;
4276
4271
4277
4272
MCSymbol *Sym = getContext ().getOrCreateSymbol (Name);
@@ -4286,7 +4281,7 @@ bool AsmParser::parseDirectiveCFIPersonalityOrLsda(bool IsPersonality) {
4286
4281
// / parseDirectiveCFIRememberState
4287
4282
// / ::= .cfi_remember_state
4288
4283
bool AsmParser::parseDirectiveCFIRememberState () {
4289
- if (parseToken (AsmToken::EndOfStatement ))
4284
+ if (parseEOL ( ))
4290
4285
return true ;
4291
4286
getStreamer ().emitCFIRememberState ();
4292
4287
return false ;
@@ -4295,7 +4290,7 @@ bool AsmParser::parseDirectiveCFIRememberState() {
4295
4290
// / parseDirectiveCFIRestoreState
4296
4291
// / ::= .cfi_remember_state
4297
4292
bool AsmParser::parseDirectiveCFIRestoreState () {
4298
- if (parseToken (AsmToken::EndOfStatement ))
4293
+ if (parseEOL ( ))
4299
4294
return true ;
4300
4295
getStreamer ().emitCFIRestoreState ();
4301
4296
return false ;
@@ -4306,8 +4301,7 @@ bool AsmParser::parseDirectiveCFIRestoreState() {
4306
4301
bool AsmParser::parseDirectiveCFISameValue (SMLoc DirectiveLoc) {
4307
4302
int64_t Register = 0 ;
4308
4303
4309
- if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4310
- parseToken (AsmToken::EndOfStatement))
4304
+ if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) || parseEOL ())
4311
4305
return true ;
4312
4306
4313
4307
getStreamer ().emitCFISameValue (Register);
@@ -4318,8 +4312,7 @@ bool AsmParser::parseDirectiveCFISameValue(SMLoc DirectiveLoc) {
4318
4312
// / ::= .cfi_restore register
4319
4313
bool AsmParser::parseDirectiveCFIRestore (SMLoc DirectiveLoc) {
4320
4314
int64_t Register = 0 ;
4321
- if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4322
- parseToken (AsmToken::EndOfStatement))
4315
+ if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) || parseEOL ())
4323
4316
return true ;
4324
4317
4325
4318
getStreamer ().emitCFIRestore (Register);
@@ -4353,8 +4346,7 @@ bool AsmParser::parseDirectiveCFIEscape() {
4353
4346
// / ::= .cfi_return_column register
4354
4347
bool AsmParser::parseDirectiveCFIReturnColumn (SMLoc DirectiveLoc) {
4355
4348
int64_t Register = 0 ;
4356
- if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4357
- parseToken (AsmToken::EndOfStatement))
4349
+ if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) || parseEOL ())
4358
4350
return true ;
4359
4351
getStreamer ().emitCFIReturnColumn (Register);
4360
4352
return false ;
@@ -4376,8 +4368,7 @@ bool AsmParser::parseDirectiveCFISignalFrame() {
4376
4368
bool AsmParser::parseDirectiveCFIUndefined (SMLoc DirectiveLoc) {
4377
4369
int64_t Register = 0 ;
4378
4370
4379
- if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) ||
4380
- parseToken (AsmToken::EndOfStatement))
4371
+ if (parseRegisterOrRegisterNumber (Register, DirectiveLoc) || parseEOL ())
4381
4372
return true ;
4382
4373
4383
4374
getStreamer ().emitCFIUndefined (Register);
@@ -4388,8 +4379,8 @@ bool AsmParser::parseDirectiveCFIUndefined(SMLoc DirectiveLoc) {
4388
4379
// / ::= .altmacro
4389
4380
// / ::= .noaltmacro
4390
4381
bool AsmParser::parseDirectiveAltmacro (StringRef Directive) {
4391
- if (getLexer (). isNot (AsmToken::EndOfStatement ))
4392
- return TokError ( " unexpected token in ' " + Directive + " ' directive " ) ;
4382
+ if (parseEOL ( ))
4383
+ return true ;
4393
4384
AltMacroMode = (Directive == " .altmacro" );
4394
4385
return false ;
4395
4386
}
@@ -4398,10 +4389,8 @@ bool AsmParser::parseDirectiveAltmacro(StringRef Directive) {
4398
4389
// / ::= .macros_on
4399
4390
// / ::= .macros_off
4400
4391
bool AsmParser::parseDirectiveMacrosOnOff (StringRef Directive) {
4401
- if (parseToken (AsmToken::EndOfStatement,
4402
- " unexpected token in '" + Directive + " ' directive" ))
4392
+ if (parseEOL ())
4403
4393
return true ;
4404
-
4405
4394
setMacrosEnabled (Directive == " .macros_on" );
4406
4395
return false ;
4407
4396
}
@@ -4640,8 +4629,7 @@ void AsmParser::checkForBadMacro(SMLoc DirectiveLoc, StringRef Name,
4640
4629
// / parseDirectiveExitMacro
4641
4630
// / ::= .exitm
4642
4631
bool AsmParser::parseDirectiveExitMacro (StringRef Directive) {
4643
- if (parseToken (AsmToken::EndOfStatement,
4644
- " unexpected token in '" + Directive + " ' directive" ))
4632
+ if (parseEOL ())
4645
4633
return true ;
4646
4634
4647
4635
if (!isInsideMacroInstantiation ())
@@ -4748,9 +4736,7 @@ bool AsmParser::parseDirectiveBundleLock() {
4748
4736
// / parseDirectiveBundleLock
4749
4737
// / ::= {.bundle_lock}
4750
4738
bool AsmParser::parseDirectiveBundleUnlock () {
4751
- if (checkForValidSection () ||
4752
- parseToken (AsmToken::EndOfStatement,
4753
- " unexpected token in '.bundle_unlock' directive" ))
4739
+ if (checkForValidSection () || parseEOL ())
4754
4740
return true ;
4755
4741
4756
4742
getStreamer ().emitBundleUnlock ();
@@ -4769,7 +4755,7 @@ bool AsmParser::parseDirectiveSpace(StringRef IDVal) {
4769
4755
if (parseOptionalToken (AsmToken::Comma))
4770
4756
if (parseAbsoluteExpression (FillExpr))
4771
4757
return addErrorSuffix (" in '" + Twine (IDVal) + " ' directive" );
4772
- if (parseToken (AsmToken::EndOfStatement ))
4758
+ if (parseEOL ( ))
4773
4759
return addErrorSuffix (" in '" + Twine (IDVal) + " ' directive" );
4774
4760
4775
4761
// FIXME: Sometimes the fill expr is 'nop' if it isn't supplied, instead of 0.
@@ -4966,8 +4952,7 @@ bool AsmParser::parseDirectiveComm(bool IsLocal) {
4966
4952
}
4967
4953
}
4968
4954
4969
- if (parseToken (AsmToken::EndOfStatement,
4970
- " unexpected token in '.comm' or '.lcomm' directive" ))
4955
+ if (parseEOL ())
4971
4956
return true ;
4972
4957
4973
4958
// NOTE: a size of zero for a .comm should create a undefined symbol
@@ -5004,8 +4989,7 @@ bool AsmParser::parseDirectiveAbort() {
5004
4989
SMLoc Loc = getLexer ().getLoc ();
5005
4990
5006
4991
StringRef Str = parseStringToEndOfStatement ();
5007
- if (parseToken (AsmToken::EndOfStatement,
5008
- " unexpected token in '.abort' directive" ))
4992
+ if (parseEOL ())
5009
4993
return true ;
5010
4994
5011
4995
if (Str.empty ())
@@ -5066,8 +5050,7 @@ bool AsmParser::parseDirectiveIncbin() {
5066
5050
}
5067
5051
}
5068
5052
5069
- if (parseToken (AsmToken::EndOfStatement,
5070
- " unexpected token in '.incbin' directive" ))
5053
+ if (parseEOL ())
5071
5054
return true ;
5072
5055
5073
5056
if (check (Skip < 0 , SkipLoc, " skip is negative" ))
@@ -5088,9 +5071,7 @@ bool AsmParser::parseDirectiveIf(SMLoc DirectiveLoc, DirectiveKind DirKind) {
5088
5071
eatToEndOfStatement ();
5089
5072
} else {
5090
5073
int64_t ExprValue;
5091
- if (parseAbsoluteExpression (ExprValue) ||
5092
- parseToken (AsmToken::EndOfStatement,
5093
- " unexpected token in '.if' directive" ))
5074
+ if (parseAbsoluteExpression (ExprValue) || parseEOL ())
5094
5075
return true ;
5095
5076
5096
5077
switch (DirKind) {
@@ -5134,8 +5115,7 @@ bool AsmParser::parseDirectiveIfb(SMLoc DirectiveLoc, bool ExpectBlank) {
5134
5115
} else {
5135
5116
StringRef Str = parseStringToEndOfStatement ();
5136
5117
5137
- if (parseToken (AsmToken::EndOfStatement,
5138
- " unexpected token in '.ifb' directive" ))
5118
+ if (parseEOL ())
5139
5119
return true ;
5140
5120
5141
5121
TheCondState.CondMet = ExpectBlank == Str.empty ();
@@ -5162,8 +5142,7 @@ bool AsmParser::parseDirectiveIfc(SMLoc DirectiveLoc, bool ExpectEqual) {
5162
5142
5163
5143
StringRef Str2 = parseStringToEndOfStatement ();
5164
5144
5165
- if (parseToken (AsmToken::EndOfStatement,
5166
- " unexpected token in '.ifc' directive" ))
5145
+ if (parseEOL ())
5167
5146
return true ;
5168
5147
5169
5148
TheCondState.CondMet = ExpectEqual == (Str1.trim () == Str2.trim ());
@@ -5222,7 +5201,7 @@ bool AsmParser::parseDirectiveIfdef(SMLoc DirectiveLoc, bool expect_defined) {
5222
5201
eatToEndOfStatement ();
5223
5202
} else {
5224
5203
if (check (parseIdentifier (Name), " expected identifier after '.ifdef'" ) ||
5225
- parseToken (AsmToken::EndOfStatement, " unexpected token in '.ifdef' " ))
5204
+ parseEOL ( ))
5226
5205
return true ;
5227
5206
5228
5207
MCSymbol *Sym = getContext ().lookupSymbol (Name);
@@ -5257,8 +5236,7 @@ bool AsmParser::parseDirectiveElseIf(SMLoc DirectiveLoc) {
5257
5236
if (parseAbsoluteExpression (ExprValue))
5258
5237
return true ;
5259
5238
5260
- if (parseToken (AsmToken::EndOfStatement,
5261
- " unexpected token in '.elseif' directive" ))
5239
+ if (parseEOL ())
5262
5240
return true ;
5263
5241
5264
5242
TheCondState.CondMet = ExprValue;
@@ -5271,8 +5249,7 @@ bool AsmParser::parseDirectiveElseIf(SMLoc DirectiveLoc) {
5271
5249
// / parseDirectiveElse
5272
5250
// / ::= .else
5273
5251
bool AsmParser::parseDirectiveElse (SMLoc DirectiveLoc) {
5274
- if (parseToken (AsmToken::EndOfStatement,
5275
- " unexpected token in '.else' directive" ))
5252
+ if (parseEOL ())
5276
5253
return true ;
5277
5254
5278
5255
if (TheCondState.TheCond != AsmCond::IfCond &&
@@ -5359,8 +5336,7 @@ bool AsmParser::parseDirectiveWarning(SMLoc L) {
5359
5336
// / parseDirectiveEndIf
5360
5337
// / ::= .endif
5361
5338
bool AsmParser::parseDirectiveEndIf (SMLoc DirectiveLoc) {
5362
- if (parseToken (AsmToken::EndOfStatement,
5363
- " unexpected token in '.endif' directive" ))
5339
+ if (parseEOL ())
5364
5340
return true ;
5365
5341
5366
5342
if ((TheCondState.TheCond == AsmCond::NoCond) || TheCondStack.empty ())
@@ -5782,16 +5758,15 @@ bool AsmParser::parseDirectivePrint(SMLoc DirectiveLoc) {
5782
5758
}
5783
5759
5784
5760
bool AsmParser::parseDirectiveAddrsig () {
5785
- if (parseToken (AsmToken::EndOfStatement ))
5761
+ if (parseEOL ( ))
5786
5762
return true ;
5787
5763
getStreamer ().emitAddrsig ();
5788
5764
return false ;
5789
5765
}
5790
5766
5791
5767
bool AsmParser::parseDirectiveAddrsigSym () {
5792
5768
StringRef Name;
5793
- if (check (parseIdentifier (Name), " expected identifier" ) ||
5794
- parseToken (AsmToken::EndOfStatement))
5769
+ if (check (parseIdentifier (Name), " expected identifier" ) || parseEOL ())
5795
5770
return true ;
5796
5771
MCSymbol *Sym = getContext ().getOrCreateSymbol (Name);
5797
5772
getStreamer ().emitAddrsigSym (Sym);
@@ -6191,7 +6166,7 @@ bool parseAssignmentExpression(StringRef Name, bool allow_redef,
6191
6166
// a = b
6192
6167
// b = c
6193
6168
6194
- if (Parser.parseToken (AsmToken::EndOfStatement ))
6169
+ if (Parser.parseEOL ( ))
6195
6170
return true ;
6196
6171
6197
6172
// Validate that the LHS is allowed to be a variable (either it has not been
0 commit comments