From 688121571ae35f2f767ae16aa84c8df4a889ab72 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Wed, 3 Sep 2014 17:31:46 +0000 Subject: Pass a && to getLazyBitcodeModule. This forces callers to use std::move when calling it. It is somewhat odd to have code with std::move that doesn't always move, but it is also odd to have code without std::move that sometimes moves. llvm-svn: 217049 --- llvm/lib/Bitcode/Reader/BitcodeReader.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp') diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp index a614ec3..84ee0b4 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.cpp +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.cpp @@ -3520,7 +3520,7 @@ const std::error_category &llvm::BitcodeErrorCategory() { /// \param[in] WillMaterializeAll Set to \c true if the caller promises to /// materialize everything -- in particular, if this isn't truly lazy. static ErrorOr -getLazyBitcodeModuleImpl(std::unique_ptr &Buffer, +getLazyBitcodeModuleImpl(std::unique_ptr &&Buffer, LLVMContext &Context, bool WillMaterializeAll) { Module *M = new Module(Buffer->getBufferIdentifier(), Context); BitcodeReader *R = new BitcodeReader(Buffer.get(), Context); @@ -3545,9 +3545,9 @@ getLazyBitcodeModuleImpl(std::unique_ptr &Buffer, } ErrorOr -llvm::getLazyBitcodeModule(std::unique_ptr &Buffer, +llvm::getLazyBitcodeModule(std::unique_ptr &&Buffer, LLVMContext &Context) { - return getLazyBitcodeModuleImpl(Buffer, Context, false); + return getLazyBitcodeModuleImpl(std::move(Buffer), Context, false); } Module *llvm::getStreamedBitcodeModule(const std::string &name, @@ -3569,7 +3569,8 @@ Module *llvm::getStreamedBitcodeModule(const std::string &name, ErrorOr llvm::parseBitcodeFile(MemoryBufferRef Buffer, LLVMContext &Context) { std::unique_ptr Buf = MemoryBuffer::getMemBuffer(Buffer, false); - ErrorOr ModuleOrErr = getLazyBitcodeModuleImpl(Buf, Context, true); + ErrorOr ModuleOrErr = + getLazyBitcodeModuleImpl(std::move(Buf), Context, true); if (!ModuleOrErr) return ModuleOrErr; Module *M = ModuleOrErr.get(); -- cgit v1.1