verify-di: Implement DebugInfoVerifier
[oota-llvm.git] / unittests / Bitcode / BitReaderTest.cpp
index 91e6c15155807ae3208fc92923ea0e6ecf392f80..b6a3e9a7b75ae07459cedad24bc5f7886cd5a272 100644 (file)
@@ -7,13 +7,14 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/Verifier.h"
+#include "llvm/ADT/SmallString.h"
 #include "llvm/Bitcode/BitstreamWriter.h"
 #include "llvm/Bitcode/ReaderWriter.h"
-#include "llvm/Constants.h"
-#include "llvm/Instructions.h"
-#include "llvm/LLVMContext.h"
-#include "llvm/Module.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/IR/LLVMContext.h"
+#include "llvm/IR/Module.h"
+#include "llvm/IR/Verifier.h"
 #include "llvm/PassManager.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "gtest/gtest.h"
@@ -43,21 +44,22 @@ static Module *makeLLVMModule() {
   return Mod;
 }
 
-static void writeModuleToBuffer(std::vector<unsigned char> &Buffer) {
-  Module *Mod = makeLLVMModule();
-  BitstreamWriter Stream(Buffer);
-  WriteBitcodeToStream(Mod, Stream);
+static void writeModuleToBuffer(SmallVectorImpl<char> &Buffer) {
+  std::unique_ptr<Module> Mod(makeLLVMModule());
+  raw_svector_ostream OS(Buffer);
+  WriteBitcodeToFile(Mod.get(), OS);
 }
 
 TEST(BitReaderTest, MaterializeFunctionsForBlockAddr) { // PR11677
-  std::vector<unsigned char> Mem;
+  SmallString<1024> Mem;
   writeModuleToBuffer(Mem);
-  StringRef Data((const char*)&Mem[0], Mem.size());
-  MemoryBuffer *Buffer = MemoryBuffer::getMemBuffer(Data, "test", false);
-  std::string errMsg;
-  Module *m = getLazyBitcodeModule(Buffer, getGlobalContext(), &errMsg);
+  MemoryBuffer *Buffer = MemoryBuffer::getMemBuffer(Mem.str(), "test", false);
+  ErrorOr<Module *> ModuleOrErr =
+      getLazyBitcodeModule(Buffer, getGlobalContext());
+  std::unique_ptr<Module> m(ModuleOrErr.get());
   PassManager passes;
   passes.add(createVerifierPass());
+  passes.add(createDebugInfoVerifierPass());
   passes.run(*m);
 }