mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
[MC] Migrate some parseToken(AsmToken::EndOfStatement, ...) to parseEOL()
This commit is contained in:
parent
1846161749
commit
dc406fffe4
@ -3059,9 +3059,8 @@ bool AsmParser::parseDirectiveReloc(SMLoc DirectiveLoc) {
|
||||
return Error(ExprLoc, "expression must be relocatable");
|
||||
}
|
||||
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in .reloc directive"))
|
||||
return true;
|
||||
if (parseEOL())
|
||||
return true;
|
||||
|
||||
const MCTargetAsmParser &MCT = getTargetParser();
|
||||
const MCSubtargetInfo &STI = MCT.getSTI();
|
||||
@ -3513,11 +3512,7 @@ bool AsmParser::parseDirectiveLine() {
|
||||
(void)LineNumber;
|
||||
// FIXME: Do something with the .line.
|
||||
}
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '.line' directive"))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return parseEOL();
|
||||
}
|
||||
|
||||
/// parseDirectiveLoc
|
||||
@ -4355,8 +4350,7 @@ bool AsmParser::parseDirectiveCFIReturnColumn(SMLoc DirectiveLoc) {
|
||||
/// parseDirectiveCFISignalFrame
|
||||
/// ::= .cfi_signal_frame
|
||||
bool AsmParser::parseDirectiveCFISignalFrame() {
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '.cfi_signal_frame'"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
|
||||
getStreamer().emitCFISignalFrame();
|
||||
@ -4667,15 +4661,14 @@ bool AsmParser::parseDirectiveEndMacro(StringRef Directive) {
|
||||
}
|
||||
|
||||
/// parseDirectivePurgeMacro
|
||||
/// ::= .purgem
|
||||
/// ::= .purgem name
|
||||
bool AsmParser::parseDirectivePurgeMacro(SMLoc DirectiveLoc) {
|
||||
StringRef Name;
|
||||
SMLoc Loc;
|
||||
if (parseTokenLoc(Loc) ||
|
||||
check(parseIdentifier(Name), Loc,
|
||||
"expected identifier in '.purgem' directive") ||
|
||||
parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '.purgem' directive"))
|
||||
parseEOL())
|
||||
return true;
|
||||
|
||||
if (!getContext().lookupMacro(Name))
|
||||
@ -4695,9 +4688,7 @@ bool AsmParser::parseDirectiveBundleAlignMode() {
|
||||
SMLoc ExprLoc = getLexer().getLoc();
|
||||
int64_t AlignSizePow2;
|
||||
if (checkForValidSection() || parseAbsoluteExpression(AlignSizePow2) ||
|
||||
parseToken(AsmToken::EndOfStatement, "unexpected token after expression "
|
||||
"in '.bundle_align_mode' "
|
||||
"directive") ||
|
||||
parseEOL() ||
|
||||
check(AlignSizePow2 < 0 || AlignSizePow2 > 30, ExprLoc,
|
||||
"invalid bundle alignment size (expected between 0 and 30)"))
|
||||
return true;
|
||||
@ -4722,9 +4713,7 @@ bool AsmParser::parseDirectiveBundleLock() {
|
||||
|
||||
if (!parseOptionalToken(AsmToken::EndOfStatement)) {
|
||||
if (check(parseIdentifier(Option), Loc, kInvalidOptionError) ||
|
||||
check(Option != "align_to_end", Loc, kInvalidOptionError) ||
|
||||
parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token after '.bundle_lock' directive option"))
|
||||
check(Option != "align_to_end", Loc, kInvalidOptionError) || parseEOL())
|
||||
return true;
|
||||
AlignToEnd = true;
|
||||
}
|
||||
@ -4799,11 +4788,7 @@ bool AsmParser::parseDirectiveDCB(StringRef IDVal, unsigned Size) {
|
||||
getStreamer().emitValue(Value, Size, ExprLoc);
|
||||
}
|
||||
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '" + Twine(IDVal) + "' directive"))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return parseEOL();
|
||||
}
|
||||
|
||||
/// parseDirectiveRealDCB
|
||||
@ -4824,11 +4809,7 @@ bool AsmParser::parseDirectiveRealDCB(StringRef IDVal, const fltSemantics &Seman
|
||||
return true;
|
||||
|
||||
APInt AsInt;
|
||||
if (parseRealValue(Semantics, AsInt))
|
||||
return true;
|
||||
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '" + Twine(IDVal) + "' directive"))
|
||||
if (parseRealValue(Semantics, AsInt) || parseEOL())
|
||||
return true;
|
||||
|
||||
for (uint64_t i = 0, e = NumValues; i != e; ++i)
|
||||
@ -4843,7 +4824,8 @@ bool AsmParser::parseDirectiveRealDCB(StringRef IDVal, const fltSemantics &Seman
|
||||
bool AsmParser::parseDirectiveDS(StringRef IDVal, unsigned Size) {
|
||||
SMLoc NumValuesLoc = Lexer.getLoc();
|
||||
int64_t NumValues;
|
||||
if (checkForValidSection() || parseAbsoluteExpression(NumValues))
|
||||
if (checkForValidSection() || parseAbsoluteExpression(NumValues) ||
|
||||
parseEOL())
|
||||
return true;
|
||||
|
||||
if (NumValues < 0) {
|
||||
@ -4851,10 +4833,6 @@ bool AsmParser::parseDirectiveDS(StringRef IDVal, unsigned Size) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '" + Twine(IDVal) + "' directive"))
|
||||
return true;
|
||||
|
||||
for (uint64_t i = 0, e = NumValues; i != e; ++i)
|
||||
getStreamer().emitFill(Size, 0);
|
||||
|
||||
@ -5271,8 +5249,7 @@ bool AsmParser::parseDirectiveElse(SMLoc DirectiveLoc) {
|
||||
/// parseDirectiveEnd
|
||||
/// ::= .end
|
||||
bool AsmParser::parseDirectiveEnd(SMLoc DirectiveLoc) {
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '.end' directive"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
|
||||
while (Lexer.isNot(AsmToken::Eof))
|
||||
@ -5325,8 +5302,7 @@ bool AsmParser::parseDirectiveWarning(SMLoc L) {
|
||||
|
||||
Message = getTok().getStringContents();
|
||||
Lex();
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"expected end of statement in '.warning' directive"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -5598,9 +5574,7 @@ bool AsmParser::parseDirectiveRept(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 rept definition.
|
||||
@ -5630,8 +5604,7 @@ bool AsmParser::parseDirectiveIrp(SMLoc DirectiveLoc) {
|
||||
if (check(parseIdentifier(Parameter.Name),
|
||||
"expected identifier in '.irp' directive") ||
|
||||
parseToken(AsmToken::Comma, "expected comma in '.irp' directive") ||
|
||||
parseMacroArguments(nullptr, A) ||
|
||||
parseToken(AsmToken::EndOfStatement, "expected End of Statement"))
|
||||
parseMacroArguments(nullptr, A) || parseEOL())
|
||||
return true;
|
||||
|
||||
// Lex the irp definition.
|
||||
@ -5670,9 +5643,7 @@ bool AsmParser::parseDirectiveIrpc(SMLoc DirectiveLoc) {
|
||||
|
||||
if (A.size() != 1 || A.front().size() != 1)
|
||||
return TokError("unexpected token in '.irpc' directive");
|
||||
|
||||
// Eat the end of statement.
|
||||
if (parseToken(AsmToken::EndOfStatement, "expected end of statement"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
|
||||
// Lex the irpc definition.
|
||||
@ -5751,7 +5722,7 @@ bool AsmParser::parseDirectivePrint(SMLoc DirectiveLoc) {
|
||||
Lex();
|
||||
if (StrTok.isNot(AsmToken::String) || StrTok.getString().front() != '"')
|
||||
return Error(DirectiveLoc, "expected double quoted string after .print");
|
||||
if (parseToken(AsmToken::EndOfStatement, "expected end of statement"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
llvm::outs() << StrTok.getStringContents() << '\n';
|
||||
return false;
|
||||
@ -5828,8 +5799,7 @@ bool AsmParser::parseDirectivePseudoProbe() {
|
||||
InlineStack.push_back(Site);
|
||||
}
|
||||
|
||||
if (parseToken(AsmToken::EndOfStatement,
|
||||
"unexpected token in '.pseudoprobe' directive"))
|
||||
if (parseEOL())
|
||||
return true;
|
||||
|
||||
getStreamer().emitPseudoProbe(Guid, Index, Type, Attr, InlineStack);
|
||||
|
@ -149,13 +149,13 @@
|
||||
.p2alignl 0 $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
.p2alignl 0 // EOL COMMENT
|
||||
// CHECK: [[@LINE+1]]:8: error: unexpected token in '.line' directive
|
||||
// CHECK: [[#@LINE+1]]:8: error: expected newline
|
||||
.line $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
.line // EOL COMMENT
|
||||
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.line' directive
|
||||
// CHECK: [[#@LINE+1]]:10: error: expected newline
|
||||
.line 0 $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
// CHECK-NOT: [[#@LINE+1]]:{{[0-9]+}}: error:
|
||||
.line 0 // EOL COMMENT
|
||||
|
||||
.file 1 "hello"
|
||||
@ -175,9 +175,9 @@
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
.cv_loc 1 1 // EOL COMMENT
|
||||
|
||||
// CHECK: [[@LINE+1]]:28: error: unexpected token after '.bundle_lock' directive option
|
||||
// CHECK: [[#@LINE+1]]:28: error: expected newline
|
||||
.bundle_lock align_to_end $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
// CHECK-NOT: [[#@LINE+1]]:{{[0-9]+}}: error:
|
||||
.bundle_lock align_to_end // EOL COMMENT
|
||||
|
||||
// CHECK: [[@LINE+1]]:11: error: invalid token in expression in directive
|
||||
@ -237,9 +237,9 @@
|
||||
.warning $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
.warning // EOL COMMENT
|
||||
// CHECK: [[@LINE+1]]:21: error: expected end of statement in '.warning' directive
|
||||
// CHECK: [[#@LINE+1]]:21: error: expected newline
|
||||
.warning "warning" $
|
||||
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
|
||||
// CHECK-NOT: [[#@LINE+1]]:{{[0-9]+}}: error:
|
||||
.warning "warning" // EOL COMMENT
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
# RUN: not llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
|
||||
# RUN: not llvm-mc -triple i386-unknown-unknown %s 2>&1 > /dev/null| FileCheck %s --check-prefix=CHECK-ERROR
|
||||
# RUN: llvm-mc -triple=i386 %s | FileCheck %s
|
||||
# RUN: not llvm-mc -triple=i386 --defsym ERR=1 %s 2>&1 > /dev/null | FileCheck %s --check-prefix=ERR
|
||||
|
||||
# CHECK: TEST0:
|
||||
# CHECK: .byte 1
|
||||
@ -42,18 +42,16 @@ TEST5:
|
||||
TEST6:
|
||||
.dcb.d 5, .232
|
||||
|
||||
# CHECK-ERROR: error: .dcb.x not currently supported for this target
|
||||
TEST7:
|
||||
.dcb.x 3, 1.2e3
|
||||
.ifdef ERR
|
||||
# ERR: :[[#@LINE+1]]:8: error: .dcb.x not currently supported for this target
|
||||
.dcb.x 3, 1.2e3
|
||||
|
||||
# CHECK-ERROR: warning: '.dcb' directive with negative repeat count has no effect
|
||||
TEST8:
|
||||
.dcb -1, 2
|
||||
# ERR: :[[#@LINE+1]]:6: warning: '.dcb' directive with negative repeat count has no effect
|
||||
.dcb -1, 2
|
||||
|
||||
# CHECK-ERROR: error: unexpected token in '.dcb' directive
|
||||
TEST9:
|
||||
.dcb 1 2
|
||||
# ERR: :[[#@LINE+1]]:8: error: unexpected token in '.dcb' directive
|
||||
.dcb 1 2
|
||||
|
||||
# CHECK-ERROR: error: unexpected token in '.dcb' directive
|
||||
TEST10:
|
||||
.dcb 1, 2 3
|
||||
# ERR: :[[#@LINE+1]]:11: error: expected newline
|
||||
.dcb 1, 2 3
|
||||
.endif
|
||||
|
@ -53,6 +53,6 @@ TEST7:
|
||||
TEST8:
|
||||
.ds -1
|
||||
|
||||
# CHECK-ERROR: error: unexpected token in '.ds' directive
|
||||
# CHECK-ERROR: :[[#@LINE+2]]:9: error: expected newline
|
||||
TEST9:
|
||||
.ds 1 2
|
||||
.ds 1 2
|
||||
|
@ -1,5 +1,5 @@
|
||||
# RUN: not llvm-mc -triple i386-linux-gnu %s 2> %t.err | FileCheck %s
|
||||
# RUN: FileCheck < %t.err %s --check-prefix=CHECK-ERR
|
||||
# RUN: llvm-mc -triple i386 %s | FileCheck %s
|
||||
# RUN: not llvm-mc -triple i386 --defsym ERR=1 %s 2>&1 | FileCheck %s --check-prefix=ERR
|
||||
|
||||
T1:
|
||||
# CHECK: e
|
||||
@ -7,12 +7,12 @@ T1:
|
||||
.print "e"
|
||||
.print "2.718281828459045235"
|
||||
|
||||
T2:
|
||||
# CHECK-ERR: expected double quoted string after .print
|
||||
.ifdef ERR
|
||||
# CHECK-ERR: :[[#@LINE+2]]:8: expected double quoted string after .print
|
||||
.altmacro
|
||||
.print <pi>
|
||||
.noaltmacro
|
||||
|
||||
T3:
|
||||
# CHECK-ERR: expected end of statement
|
||||
# ERR: :[[#@LINE+1]]:12: error: expected newline
|
||||
.print "a" "misplaced-string"
|
||||
.endif
|
||||
|
@ -35,7 +35,7 @@ negative:
|
||||
trailer:
|
||||
.rep 0 trailer
|
||||
|
||||
# CHECK: error: unexpected token in '.rep' directive
|
||||
# CHECK: :[[#@LINE-2]]:9: error: expected newline
|
||||
# CHECK: .rep 0 trailer
|
||||
# CHECK: ^
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user