From bf8519b5c9aa2c381b5f4725c21601a99b1b37c2 Mon Sep 17 00:00:00 2001 From: Pavel Labath Date: Wed, 20 Dec 2017 11:34:38 +0000 Subject: Remove llvm::MemoryBuffer const_casts Summary: llvm has grown a WritableMemoryBuffer class, which is convertible (inherits from) a MemoryBuffer. We can use it to avoid conts_casting the buffer contents when we want to write to it. Reviewers: dblaikie, rsmith Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D41387 llvm-svn: 321167 --- clang/lib/Basic/SourceManager.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'clang/lib/Basic/SourceManager.cpp') diff --git a/clang/lib/Basic/SourceManager.cpp b/clang/lib/Basic/SourceManager.cpp index e664879639f..0a51985614c 100644 --- a/clang/lib/Basic/SourceManager.cpp +++ b/clang/lib/Basic/SourceManager.cpp @@ -125,11 +125,12 @@ llvm::MemoryBuffer *ContentCache::getBuffer(DiagnosticsEngine &Diag, // possible. if (!BufferOrError) { StringRef FillStr("<<>>\n"); - Buffer.setPointer(MemoryBuffer::getNewUninitMemBuffer( - ContentsEntry->getSize(), "").release()); - char *Ptr = const_cast(Buffer.getPointer()->getBufferStart()); + auto BackupBuffer = llvm::WritableMemoryBuffer::getNewUninitMemBuffer( + ContentsEntry->getSize(), ""); + 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, -- cgit v1.2.3