2
0
Эх сурвалжийг харах

Save/restore diag printer in LoadModuleFromBitcode.

Tex Riddell 7 жил өмнө
parent
commit
5f94a3cf57
1 өөрчлөгдсөн 3 нэмэгдсэн , 0 устгасан
  1. 3 0
      lib/HLSL/DxilUtil.cpp

+ 3 - 0
lib/HLSL/DxilUtil.cpp

@@ -145,9 +145,12 @@ std::unique_ptr<llvm::Module> LoadModuleFromBitcode(llvm::MemoryBuffer *MB,
   std::string &DiagStr) {
   raw_string_ostream DiagStream(DiagStr);
   llvm::DiagnosticPrinterRawOStream DiagPrinter(DiagStream);
+  LLVMContext::DiagnosticHandlerTy OrigHandler = Ctx.getDiagnosticHandler();
+  void *OrigContext = Ctx.getDiagnosticContext();
   Ctx.setDiagnosticHandler(PrintDiagnosticHandler, &DiagPrinter, true);
   ErrorOr<std::unique_ptr<llvm::Module>> pModule(
     llvm::parseBitcodeFile(MB->getMemBufferRef(), Ctx));
+  Ctx.setDiagnosticHandler(OrigHandler, OrigContext);
   if (std::error_code ec = pModule.getError()) {
     return nullptr;
   }