//
//===----------------------------------------------------------------------===//
-#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"
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);
}