mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 12:12:47 +01:00
Revert "[MC] Fix handling of end-of-line preprocessor comments"
Causes TSan failure on PPC64 This reverts commit r277459. llvm-svn: 277468
This commit is contained in:
parent
6b783de4e5
commit
7dfad7c506
@ -262,23 +262,9 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool parseEOL(const Twine &ErrMsg) {
|
|
||||||
if (getTok().getKind() == AsmToken::Hash) {
|
|
||||||
StringRef CommentStr = parseStringToEndOfStatement();
|
|
||||||
Lexer.Lex();
|
|
||||||
Lexer.UnLex(AsmToken(AsmToken::EndOfStatement, CommentStr));
|
|
||||||
}
|
|
||||||
if (getTok().getKind() != AsmToken::EndOfStatement)
|
|
||||||
return TokError(ErrMsg);
|
|
||||||
Lex();
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// parseToken - If current token has the specified kind, eat it and
|
/// parseToken - If current token has the specified kind, eat it and
|
||||||
/// return success. Otherwise, emit the specified error and return failure.
|
/// return success. Otherwise, emit the specified error and return failure.
|
||||||
bool parseToken(AsmToken::TokenKind T, const Twine &ErrMsg) {
|
bool parseToken(AsmToken::TokenKind T, const Twine &ErrMsg) {
|
||||||
if (T == AsmToken::EndOfStatement)
|
|
||||||
return parseEOL(ErrMsg);
|
|
||||||
if (getTok().getKind() != T)
|
if (getTok().getKind() != T)
|
||||||
return TokError(ErrMsg);
|
return TokError(ErrMsg);
|
||||||
Lex();
|
Lex();
|
||||||
@ -1423,16 +1409,6 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
|||||||
Lex();
|
Lex();
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (Lexer.is(AsmToken::Hash)) {
|
|
||||||
// Seeing a hash here means that it was an end-of-line comment in
|
|
||||||
// an asm syntax where hash's are not comment and the previous
|
|
||||||
// statement parser did not check the end of statement. Relex as
|
|
||||||
// EndOfStatement.
|
|
||||||
StringRef CommentStr = parseStringToEndOfStatement();
|
|
||||||
Lexer.Lex();
|
|
||||||
Lexer.UnLex(AsmToken(AsmToken::EndOfStatement, CommentStr));
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// Statements always start with an identifier.
|
// Statements always start with an identifier.
|
||||||
AsmToken ID = getTok();
|
AsmToken ID = getTok();
|
||||||
SMLoc IDLoc = ID.getLoc();
|
SMLoc IDLoc = ID.getLoc();
|
||||||
@ -1566,16 +1542,6 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
|||||||
if (!Sym->isUndefined() || Sym->isVariable())
|
if (!Sym->isUndefined() || Sym->isVariable())
|
||||||
return Error(IDLoc, "invalid symbol redefinition");
|
return Error(IDLoc, "invalid symbol redefinition");
|
||||||
|
|
||||||
// End of Labels should be treated as end of line for lexing
|
|
||||||
// purposes but that information is not available to the Lexer who
|
|
||||||
// does not understand Labels. This may cause us to see a Hash
|
|
||||||
// here instead of a preprocessor line comment.
|
|
||||||
if (getTok().is(AsmToken::Hash)) {
|
|
||||||
StringRef CommentStr = parseStringToEndOfStatement();
|
|
||||||
Lexer.Lex();
|
|
||||||
Lexer.UnLex(AsmToken(AsmToken::EndOfStatement, CommentStr));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Consume any end of statement token, if present, to avoid spurious
|
// Consume any end of statement token, if present, to avoid spurious
|
||||||
// AddBlankLine calls().
|
// AddBlankLine calls().
|
||||||
if (getTok().is(AsmToken::EndOfStatement)) {
|
if (getTok().is(AsmToken::EndOfStatement)) {
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
@RUN: llvm-mc -preserve-comments -n -triple arm-eabi < %s > %t
|
|
||||||
@RUN: sed 's/#[C]omment/@Comment/g' %s > %t2
|
|
||||||
@RUN: diff %t %t2
|
|
||||||
.text
|
|
||||||
|
|
||||||
mov r0, r0
|
|
||||||
foo: #Comment here
|
|
||||||
mov r0, r0 @ EOL comment
|
|
||||||
.ident ""
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user