mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-02-04 16:26:46 +00:00
generalize the "end of line" checking logic to stop at any \0 at the
end of line instead of just the end of buffer. Scratch buffers contain embedded \0's between tokens which are logic line separators. If a normal text buffer contains \0's, it doesn't make a lot of sense to include them in the caret diag output anyway. llvm-svn: 66374
This commit is contained in:
parent
fa217bda40
commit
139d87b805
@ -145,7 +145,6 @@ void TextDiagnosticPrinter::EmitCaretDiagnostic(SourceLocation Loc,
|
||||
// Get information about the buffer it points into.
|
||||
std::pair<const char*, const char*> BufferInfo = SM.getBufferData(FID);
|
||||
const char *BufStart = BufferInfo.first;
|
||||
const char *BufEnd = BufferInfo.second;
|
||||
|
||||
unsigned ColNo = SM.getColumnNumber(FID, FileOffset);
|
||||
|
||||
@ -157,8 +156,7 @@ void TextDiagnosticPrinter::EmitCaretDiagnostic(SourceLocation Loc,
|
||||
// Compute the line end. Scan forward from the error position to the end of
|
||||
// the line.
|
||||
const char *LineEnd = TokPtr;
|
||||
while (LineEnd != BufEnd &&
|
||||
*LineEnd != '\n' && *LineEnd != '\r')
|
||||
while (*LineEnd != '\n' && *LineEnd != '\r' && *LineEnd != '\0')
|
||||
++LineEnd;
|
||||
|
||||
// Copy the line of code into an std::string for ease of manipulation.
|
||||
|
Loading…
x
Reference in New Issue
Block a user