Index: unittests/Bitcode/NaClBitReaderTest.cpp |
diff --git a/unittests/Bitcode/NaClBitReaderTest.cpp b/unittests/Bitcode/NaClBitReaderTest.cpp |
index cf719ffce231eccf970817d3b0839fdf620aed39..b0a28f57b083f0c03d6de21cb68fd8706931a8a1 100644 |
--- a/unittests/Bitcode/NaClBitReaderTest.cpp |
+++ b/unittests/Bitcode/NaClBitReaderTest.cpp |
@@ -16,19 +16,20 @@ |
#include "llvm/IR/Module.h" |
#include "llvm/IR/Verifier.h" |
#include "llvm/PassManager.h" |
+#include "llvm/Support/Debug.h" |
#include "llvm/Support/MemoryBuffer.h" |
#include "gtest/gtest.h" |
namespace llvm { |
namespace { |
-static Module *makeLLVMModule() { |
- Module* Mod = new Module("test-mem", getGlobalContext()); |
+static std::unique_ptr<Module> makeLLVMModule() { |
+ std::unique_ptr<Module> Mod(new Module("test-mem", getGlobalContext())); |
FunctionType* FuncTy = |
FunctionType::get(Type::getVoidTy(Mod->getContext()), false); |
Function* Func = Function::Create(FuncTy,GlobalValue::ExternalLinkage, |
- "func", Mod); |
+ "func", Mod.get()); |
BasicBlock* Entry = BasicBlock::Create(Mod->getContext(), "entry", Func); |
new UnreachableInst(Mod->getContext(), Entry); |
@@ -40,7 +41,7 @@ static Module *makeLLVMModule() { |
} |
static void writeModuleToBuffer(SmallVectorImpl<char> &Buffer) { |
- std::unique_ptr<Module> Mod(makeLLVMModule()); |
+ std::unique_ptr<Module> Mod = makeLLVMModule(); |
raw_svector_ostream OS(Buffer); |
NaClWriteBitcodeToFile(Mod.get(), OS); |
} |
@@ -49,16 +50,15 @@ static void writeModuleToBuffer(SmallVectorImpl<char> &Buffer) { |
TEST(NaClBitReaderTest, MaterializeSimpleModule) { |
SmallString<1024> Mem; |
writeModuleToBuffer(Mem); |
- MemoryBuffer *Buffer = MemoryBuffer::getMemBuffer(Mem.str(), "test", false); |
+ std::unique_ptr<MemoryBuffer> Buffer = MemoryBuffer::getMemBuffer(Mem.str(), "test", false); |
ErrorOr<Module *> ModuleOrErr = |
- getNaClLazyBitcodeModule(Buffer, getGlobalContext()); |
+ getNaClLazyBitcodeModule(std::move(Buffer), getGlobalContext()); |
EXPECT_EQ(true, bool(ModuleOrErr)); |
// Do something with the module just to make sure it was built. |
- std::unique_ptr<Module> m(ModuleOrErr.get()); |
- EXPECT_NE((Module *)nullptr, m.get()); |
- PassManager passes; |
- passes.add(createVerifierPass()); |
- passes.run(*m); |
+ std::unique_ptr<Module> M(ModuleOrErr.get()); |
+ EXPECT_NE((Module *)nullptr, M.get()); |
+ M->getFunction("func")->materialize(); |
+ EXPECT_FALSE(verifyModule(*M, &dbgs())); |
} |
// Test that we catch bad stuff at the end of a bitcode file. |
@@ -66,9 +66,9 @@ TEST(NaClBitReaderTest, BadDataAfterModule) { |
SmallString<1024> Mem; |
writeModuleToBuffer(Mem); |
Mem.append("more"); // Length must be divisible by 4! |
- MemoryBuffer *Buffer = MemoryBuffer::getMemBuffer(Mem.str(), "test", false); |
+ std::unique_ptr<MemoryBuffer> Buffer = MemoryBuffer::getMemBuffer(Mem.str(), "test", false); |
ErrorOr<Module *> ModuleOrErr = |
- getNaClLazyBitcodeModule(Buffer, getGlobalContext()); |
+ getNaClLazyBitcodeModule(std::move(Buffer), getGlobalContext()); |
EXPECT_EQ(false, bool(ModuleOrErr)); |
std::string BadMessage("Invalid data after module"); |
EXPECT_EQ(BadMessage, ModuleOrErr.getError().message()); |