forked from OSchip/llvm-project
Have SourceManager::getLocForEndOfFile() point at the "EOF" location of the FileID.
This fixes a crash due to SourceManager::getLocForEndOfFile() returning an off-by-one location when the the FileID is for an empty file. rdar://13803893 llvm-svn: 181285
This commit is contained in:
parent
99005e65cd
commit
d391046930
|
@ -1005,7 +1005,7 @@ public:
|
|||
return SourceLocation();
|
||||
|
||||
unsigned FileOffset = Entry.getOffset();
|
||||
return SourceLocation::getFileLoc(FileOffset + getFileIDSize(FID) - 1);
|
||||
return SourceLocation::getFileLoc(FileOffset + getFileIDSize(FID));
|
||||
}
|
||||
|
||||
/// \brief Returns the include location if \p FID is a \#include'd file
|
||||
|
|
|
@ -464,7 +464,7 @@ bool InclusionRewriter::Process(FileID FileId,
|
|||
RawLex.LexFromRawLexer(RawToken);
|
||||
}
|
||||
OutputContentUpTo(FromFile, NextToWrite,
|
||||
SM.getFileOffset(SM.getLocForEndOfFile(FileId)) + 1, EOL, Line,
|
||||
SM.getFileOffset(SM.getLocForEndOfFile(FileId)), EOL, Line,
|
||||
/*EnsureNewline*/true);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -22,3 +22,6 @@ int LocalVar;
|
|||
|
||||
// TOP: inclusion directive=targeted-nested1.h ({{.*[/\\]}}test{{[/\\]}}Index{{[/\\]}}targeted-nested1.h) =[5:1 - 5:2]
|
||||
// TOP: inclusion directive=targeted-fields.h ({{.*[/\\]}}test{{[/\\]}}Index{{[/\\]}}targeted-fields.h) =[16:1 - 16:2]
|
||||
|
||||
// rdar://13803893
|
||||
// RUN: c-index-test -file-includes-in=%S/Inputs/empty.h %S/Inputs/empty.h
|
||||
|
|
Loading…
Reference in New Issue