[analyzer] Fix an assertion fail in hash generation.
In case the (uniqueing) location of the diagnostic is in a line that only contains whitespaces there was an assertion fail during issue hash generation. Unfortunately I am unable to reproduce this error with the built in checkers, so no there is no failing test case with this patch. It would be possible to write a debug checker for that purpuse but it does not worth the effort. Differential Revision: http://reviews.llvm.org/D18210 llvm-svn: 264851
This commit is contained in:
parent
021ccdb7cd
commit
b780c44eec
|
@ -132,8 +132,11 @@ static std::string NormalizeLine(const SourceManager &SM, FullSourceLoc &L,
|
|||
|
||||
StringRef Str = GetNthLineOfFile(SM.getBuffer(L.getFileID(), L),
|
||||
L.getExpansionLineNumber());
|
||||
unsigned col = Str.find_first_not_of(Whitespaces);
|
||||
col++;
|
||||
StringRef::size_type col = Str.find_first_not_of(Whitespaces);
|
||||
if (col == StringRef::npos)
|
||||
col = 1; // The line only contains whitespace.
|
||||
else
|
||||
col++;
|
||||
SourceLocation StartOfLine =
|
||||
SM.translateLineCol(SM.getFileID(L), L.getExpansionLineNumber(), col);
|
||||
llvm::MemoryBuffer *Buffer =
|
||||
|
|
Loading…
Reference in New Issue