diff options
Diffstat (limited to 'llvm/lib/MC/MCParser')
| -rw-r--r-- | llvm/lib/MC/MCParser/AsmLexer.cpp | 9 | ||||
| -rw-r--r-- | llvm/lib/MC/MCParser/AsmParser.cpp | 2 | 
2 files changed, 9 insertions, 2 deletions
| diff --git a/llvm/lib/MC/MCParser/AsmLexer.cpp b/llvm/lib/MC/MCParser/AsmLexer.cpp index 968ccf7..a6188f0 100644 --- a/llvm/lib/MC/MCParser/AsmLexer.cpp +++ b/llvm/lib/MC/MCParser/AsmLexer.cpp @@ -835,7 +835,14 @@ AsmToken AsmLexer::LexToken() {    }    if (isAtStartOfComment(TokStart)) { -    CurPtr += MAI.getCommentString().size() - 1; +    StringRef CommentString = MAI.getCommentString(); +    // For multi-char comment strings, advance CurPtr only if we matched the +    // full string. This stops us from accidentally eating the newline if the +    // current line ends in a single comment char. +    if (CommentString.size() > 1 && +        StringRef(TokStart, CommentString.size()) == CommentString) { +      CurPtr += CommentString.size() - 1; +    }      return LexLineComment();    } diff --git a/llvm/lib/MC/MCParser/AsmParser.cpp b/llvm/lib/MC/MCParser/AsmParser.cpp index acea3ab..dd1bc2b 100644 --- a/llvm/lib/MC/MCParser/AsmParser.cpp +++ b/llvm/lib/MC/MCParser/AsmParser.cpp @@ -726,7 +726,7 @@ public:      Lexer.setLexHLASMStrings(true);    } -  ~HLASMAsmParser() { Lexer.setSkipSpace(true); } +  ~HLASMAsmParser() override { Lexer.setSkipSpace(true); }    bool parseStatement(ParseStatementInfo &Info,                        MCAsmParserSemaCallback *SI) override; | 
