From: Rafael Espindola Date: Tue, 17 Nov 2015 05:11:44 +0000 (+0000) Subject: Add MemoryBufferRef(MemoryBuffer&) constructor. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=96902bf6e3e4386650908541a13e084bceb79850;ds=sidebyside Add MemoryBufferRef(MemoryBuffer&) constructor. patch by Jonathan Anderson! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253311 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Support/MemoryBuffer.h b/include/llvm/Support/MemoryBuffer.h index 4aeca0c5b64..d6ff69d50f5 100644 --- a/include/llvm/Support/MemoryBuffer.h +++ b/include/llvm/Support/MemoryBuffer.h @@ -152,6 +152,8 @@ class MemoryBufferRef { public: MemoryBufferRef() {} + MemoryBufferRef(MemoryBuffer& Buffer) + : Buffer(Buffer.getBuffer()), Identifier(Buffer.getBufferIdentifier()) {} MemoryBufferRef(StringRef Buffer, StringRef Identifier) : Buffer(Buffer), Identifier(Identifier) {} diff --git a/unittests/Support/MemoryBufferTest.cpp b/unittests/Support/MemoryBufferTest.cpp index ffb809aa207..ffbd74dc4c0 100644 --- a/unittests/Support/MemoryBufferTest.cpp +++ b/unittests/Support/MemoryBufferTest.cpp @@ -170,6 +170,15 @@ TEST_F(MemoryBufferTest, getOpenFileReopened) { } +TEST_F(MemoryBufferTest, reference) { + OwningBuffer MB(MemoryBuffer::getMemBuffer(data)); + MemoryBufferRef MBR(*MB); + + EXPECT_EQ(MB->getBufferStart(), MBR.getBufferStart()); + EXPECT_EQ(MB->getBufferIdentifier(), MBR.getBufferIdentifier()); +} + + TEST_F(MemoryBufferTest, slice) { // Create a file that is six pages long with different data on each page. int FD;