瀏覽代碼

Save/restore diag printer in LoadModuleFromBitcode.

Tex Riddell 7 年之前
父節點
當前提交
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;
   }