Fix ASTUnit to allows require a (persistent) Diagnostic object be provided; propogate and simplify.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90379 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/examples/wpa/clang-wpa.cpp b/examples/wpa/clang-wpa.cpp
index 4a0fe49..a0182c1 100644
--- a/examples/wpa/clang-wpa.cpp
+++ b/examples/wpa/clang-wpa.cpp
@@ -16,7 +16,7 @@
#include "clang/Frontend/ASTUnit.h"
#include "clang/Basic/FileManager.h"
#include "clang/Basic/SourceManager.h"
-#include "clang/Frontend/TextDiagnosticBuffer.h"
+#include "clang/Frontend/CompilerInstance.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/raw_ostream.h"
using namespace clang;
@@ -33,20 +33,14 @@
if (InputFilenames.empty())
return 0;
- TextDiagnosticBuffer DiagClient;
+ llvm::OwningPtr<Diagnostic> Diags(
+ CompilerInstance::createDiagnostics(DiagnosticOptions(), argc, argv));
for (unsigned i = 0, e = InputFilenames.size(); i != e; ++i) {
const std::string &InFile = InputFilenames[i];
-
- std::string ErrMsg;
- llvm::OwningPtr<ASTUnit> AST;
-
- AST.reset(ASTUnit::LoadFromPCHFile(InFile, &ErrMsg, &DiagClient));
-
- if (!AST) {
- llvm::errs() << "[" << InFile << "] error: " << ErrMsg << '\n';
+ llvm::OwningPtr<ASTUnit> AST(ASTUnit::LoadFromPCHFile(InFile, *Diags));
+ if (!AST)
return 1;
- }
ASTUnits.push_back(AST.take());
}