aboutsummaryrefslogtreecommitdiff
path: root/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2017-12-24 01:08:34 +0000
committerDimitry Andric <dim@FreeBSD.org>2017-12-24 01:08:34 +0000
commit13ddaa8416c02b81fbab9357336f4e70624b7652 (patch)
tree7a0f6b255a547001b88203525cf7cd0e399acdf9 /contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
parentda09e106efc76da569f2bad3d59b6b19b503bf39 (diff)
parent6252156da5066bd47f63f8bd40404d1f89909d32 (diff)
Notes
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp')
-rw-r--r--contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp b/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
index e664879639f3..0a51985614c8 100644
--- a/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
+++ b/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp
@@ -125,11 +125,12 @@ llvm::MemoryBuffer *ContentCache::getBuffer(DiagnosticsEngine &Diag,
// possible.
if (!BufferOrError) {
StringRef FillStr("<<<MISSING SOURCE FILE>>>\n");
- Buffer.setPointer(MemoryBuffer::getNewUninitMemBuffer(
- ContentsEntry->getSize(), "<invalid>").release());
- char *Ptr = const_cast<char*>(Buffer.getPointer()->getBufferStart());
+ auto BackupBuffer = llvm::WritableMemoryBuffer::getNewUninitMemBuffer(
+ ContentsEntry->getSize(), "<invalid>");
+ char *Ptr = BackupBuffer->getBufferStart();
for (unsigned i = 0, e = ContentsEntry->getSize(); i != e; ++i)
Ptr[i] = FillStr[i % FillStr.size()];
+ Buffer.setPointer(BackupBuffer.release());
if (Diag.isDiagnosticInFlight())
Diag.SetDelayedDiagnostic(diag::err_cannot_open_file,