From f94cd9df0f88b113fa3a3b7461847621f36734ca Mon Sep 17 00:00:00 2001 From: Nirav Dave Date: Tue, 2 Aug 2016 15:08:52 +0000 Subject: [PATCH] Revert "[MC] Fix handling of end-of-line preprocessor comments" Causes TSan failure on PPC64 This reverts commit r277459. llvm-svn: 277468 --- llvm/lib/MC/MCParser/AsmParser.cpp | 34 -------------------------------- llvm/test/MC/ARM/preserve-comments-arm.s | 10 ---------- 2 files changed, 44 deletions(-) delete mode 100644 llvm/test/MC/ARM/preserve-comments-arm.s diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index 6d3240a..d85f1c6 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -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)) { diff --git a/llvm/test/MC/ARM/preserve-comments-arm.s b/llvm/test/MC/ARM/preserve-comments-arm.s deleted file mode 100644 index 4c48009..0000000 --- a/llvm/test/MC/ARM/preserve-comments-arm.s +++ /dev/null @@ -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 "" - -- 2.7.4