diff options
-rw-r--r-- | llvm/.gitattributes | 3 | ||||
-rw-r--r-- | llvm/lib/MC/MCParser/AsmLexer.cpp | 3 | ||||
-rw-r--r-- | llvm/test/tools/llvm-mca/directives-handle-crlf.s | 4 |
3 files changed, 8 insertions, 2 deletions
diff --git a/llvm/.gitattributes b/llvm/.gitattributes index 48ddf2f..b41ae6a 100644 --- a/llvm/.gitattributes +++ b/llvm/.gitattributes @@ -13,7 +13,8 @@ test/tools/llvm-strings/Inputs/numbers binary test/MC/AsmParser/incbin_abcd binary test/YAMLParser/spec-09-02.test binary -# This file must have CRLF line endings, therefore git should treat it as +# These files must have CRLF line endings, therefore git should treat them as # binary and not autoconvert line endings (for example, when core.autocrlf is # on). test/MC/AsmParser/preserve-comments-crlf.s binary +test/tools/llvm-mca/directives-handle-crlf.s binary diff --git a/llvm/lib/MC/MCParser/AsmLexer.cpp b/llvm/lib/MC/MCParser/AsmLexer.cpp index e328ba5..bf9b9e9 100644 --- a/llvm/lib/MC/MCParser/AsmLexer.cpp +++ b/llvm/lib/MC/MCParser/AsmLexer.cpp @@ -228,6 +228,7 @@ AsmToken AsmLexer::LexLineComment() { int CurChar = getNextChar(); while (CurChar != '\n' && CurChar != '\r' && CurChar != EOF) CurChar = getNextChar(); + const char *NewlinePtr = CurPtr; if (CurChar == '\r' && CurPtr != CurBuf.end() && *CurPtr == '\n') ++CurPtr; @@ -235,7 +236,7 @@ AsmToken AsmLexer::LexLineComment() { if (CommentConsumer) { CommentConsumer->HandleComment( SMLoc::getFromPointer(CommentTextStart), - StringRef(CommentTextStart, CurPtr - 1 - CommentTextStart)); + StringRef(CommentTextStart, NewlinePtr - 1 - CommentTextStart)); } IsAtStartOfLine = true; diff --git a/llvm/test/tools/llvm-mca/directives-handle-crlf.s b/llvm/test/tools/llvm-mca/directives-handle-crlf.s new file mode 100644 index 0000000..aa5c0fc --- /dev/null +++ b/llvm/test/tools/llvm-mca/directives-handle-crlf.s @@ -0,0 +1,4 @@ +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown %s
+# LLVM-MCA-BEGIN foo
+addl $42, %eax
+# LLVM-MCA-END
|