summaryrefslogtreecommitdiffstats
path: root/clang/examples/wpa/clang-wpa.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-12-03 01:45:44 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-12-03 01:45:44 +0000
commit59203007acb7cb1301215dbd4053be043dbb8465 (patch)
tree4ee0aef36bcf598d2c787a6c10ff9787d3352623 /clang/examples/wpa/clang-wpa.cpp
parent5ef26fb4fd9d6a3ac7b35eb5f3a2a4814449a28f (diff)
downloadbcm5719-llvm-59203007acb7cb1301215dbd4053be043dbb8465.tar.gz
bcm5719-llvm-59203007acb7cb1301215dbd4053be043dbb8465.zip
Fix ASTUnit to allows require a (persistent) Diagnostic object be provided; propogate and simplify.
llvm-svn: 90379
Diffstat (limited to 'clang/examples/wpa/clang-wpa.cpp')
-rw-r--r--clang/examples/wpa/clang-wpa.cpp16
1 files changed, 5 insertions, 11 deletions
diff --git a/clang/examples/wpa/clang-wpa.cpp b/clang/examples/wpa/clang-wpa.cpp
index 4a0fe499395..a0182c17889 100644
--- a/clang/examples/wpa/clang-wpa.cpp
+++ b/clang/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 @@ int main(int argc, char **argv) {
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());
}
OpenPOWER on IntegriCloud