summaryrefslogtreecommitdiffstats
path: root/clang/lib/Lex/ScratchBuffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Lex/ScratchBuffer.cpp')
-rw-r--r--clang/lib/Lex/ScratchBuffer.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/clang/lib/Lex/ScratchBuffer.cpp b/clang/lib/Lex/ScratchBuffer.cpp
index 99fbdf75654..ec07a71baf6 100644
--- a/clang/lib/Lex/ScratchBuffer.cpp
+++ b/clang/lib/Lex/ScratchBuffer.cpp
@@ -24,7 +24,6 @@ static const unsigned ScratchBufSize = 4060;
ScratchBuffer::ScratchBuffer(SourceManager &SM) : SourceMgr(SM), CurBuffer(0) {
// Set BytesUsed so that the first call to getToken will require an alloc.
BytesUsed = ScratchBufSize;
- FileID = 0;
}
/// getToken - Splat the specified text into a temporary MemoryBuffer and
@@ -44,7 +43,7 @@ SourceLocation ScratchBuffer::getToken(const char *Buf, unsigned Len) {
assert(BytesUsed-Len < (1 << SourceLocation::FilePosBits) &&
"Out of range file position!");
- return SourceLocation::getFileLoc(FileID, BytesUsed-Len);
+ return BufferStartLoc.getFileLocWithOffset(BytesUsed-Len);
}
@@ -66,7 +65,8 @@ void ScratchBuffer::AllocScratchBuffer(unsigned RequestLen) {
llvm::MemoryBuffer *Buf =
llvm::MemoryBuffer::getNewMemBuffer(RequestLen, "<scratch space>");
- FileID = SourceMgr.createFileIDForMemBuffer(Buf);
+ FileID FID = SourceMgr.createFileIDForMemBuffer(Buf);
+ BufferStartLoc = SourceMgr.getLocForStartOfFile(FID);
CurBuffer = const_cast<char*>(Buf->getBufferStart());
BytesUsed = 0;
}
OpenPOWER on IntegriCloud