mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +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;
|
||||
}
|
||||
|
||||
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
|
||||
/// return success. Otherwise, emit the specified error and return failure.
|
||||
bool parseToken(AsmToken::TokenKind T, const Twine &ErrMsg) {
|
||||
if (T == AsmToken::EndOfStatement)
|
||||
return parseEOL(ErrMsg);
|
||||
if (getTok().getKind() != T)
|
||||
return TokError(ErrMsg);
|
||||
Lex();
|
||||
@ -1423,16 +1409,6 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
||||
Lex();
|
||||
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.
|
||||
AsmToken ID = getTok();
|
||||
SMLoc IDLoc = ID.getLoc();
|
||||
@ -1566,16 +1542,6 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
||||
if (!Sym->isUndefined() || Sym->isVariable())
|
||||
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
|
||||
// AddBlankLine calls().
|
||||
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