diff --git a/llvm/include/llvm/Support/MemoryBuffer.h b/llvm/include/llvm/Support/MemoryBuffer.h index 535579ecff53..8933295d4ea4 100644 --- a/llvm/include/llvm/Support/MemoryBuffer.h +++ b/llvm/include/llvm/Support/MemoryBuffer.h @@ -43,7 +43,6 @@ class MemoryBuffer { const char *BufferStart; // Start of the buffer. const char *BufferEnd; // End of the buffer. - protected: MemoryBuffer() = default; @@ -148,9 +147,6 @@ public: virtual BufferKind getBufferKind() const = 0; MemoryBufferRef getMemBufferRef() const; - -private: - virtual void anchor(); }; /// This class is an extension of MemoryBuffer, which allows copy-on-write diff --git a/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h b/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h index f43c2fb8f826..c4a600e7f37d 100644 --- a/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h +++ b/llvm/include/llvm/Support/SmallVectorMemoryBuffer.h @@ -49,6 +49,9 @@ public: init(this->SV.begin(), this->SV.end(), false); } + // Key function. + ~SmallVectorMemoryBuffer() override; + StringRef getBufferIdentifier() const override { return BufferName; } BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; } @@ -56,7 +59,6 @@ public: private: SmallVector<char, 0> SV; std::string BufferName; - void anchor() override; }; } // namespace llvm diff --git a/llvm/lib/Support/MemoryBuffer.cpp b/llvm/lib/Support/MemoryBuffer.cpp index 4428c2f24e32..e9505490e9c5 100644 --- a/llvm/lib/Support/MemoryBuffer.cpp +++ b/llvm/lib/Support/MemoryBuffer.cpp @@ -533,5 +533,4 @@ MemoryBufferRef MemoryBuffer::getMemBufferRef() const { return MemoryBufferRef(Data, Identifier); } -void MemoryBuffer::anchor() {} -void SmallVectorMemoryBuffer::anchor() {} +SmallVectorMemoryBuffer::~SmallVectorMemoryBuffer() {}