summaryrefslogtreecommitdiffstats
path: root/clang/tools/driver/driver.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-03-12 08:55:43 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-03-12 08:55:43 +0000
commitc0b3e95a1ad572cb8e27ae027b20898c42a164d1 (patch)
treedb7d56934152548252ec0326158c096f2a8fee85 /clang/tools/driver/driver.cpp
parent33699689ed30466edd61f199fd9b49f08af4f52b (diff)
downloadbcm5719-llvm-c0b3e95a1ad572cb8e27ae027b20898c42a164d1.tar.gz
bcm5719-llvm-c0b3e95a1ad572cb8e27ae027b20898c42a164d1.zip
Driver: Use standard Diagnostic interface for diagnostics.
llvm-svn: 66786
Diffstat (limited to 'clang/tools/driver/driver.cpp')
-rw-r--r--clang/tools/driver/driver.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/clang/tools/driver/driver.cpp b/clang/tools/driver/driver.cpp
index b9e94b28131..645a3ff11a8 100644
--- a/clang/tools/driver/driver.cpp
+++ b/clang/tools/driver/driver.cpp
@@ -17,15 +17,24 @@
#include "clang/Driver/Option.h"
#include "clang/Driver/Options.h"
+#include "clang/Frontend/TextDiagnosticPrinter.h"
+
#include "llvm/ADT/OwningPtr.h"
#include "llvm/Config/config.h"
+#include "llvm/Support/raw_ostream.h"
#include "llvm/System/Path.h"
#include "llvm/System/Signals.h"
+using namespace clang;
using namespace clang::driver;
int main(int argc, const char **argv) {
llvm::sys::PrintStackTraceOnErrorSignal();
+ llvm::OwningPtr<DiagnosticClient>
+ DiagClient(new TextDiagnosticPrinter(llvm::errs()));
+
+ Diagnostic Diags(DiagClient.get());
+
// FIXME: We should use GetMainExecutable here, probably, but we may
// want to handle symbolic links slightly differently. The problem
// is that the path derived from this will influence search paths.
@@ -35,9 +44,14 @@ int main(int argc, const char **argv) {
// compiled on.
llvm::OwningPtr<Driver> TheDriver(new Driver(Path.getBasename().c_str(),
Path.getDirname().c_str(),
- LLVM_HOSTTRIPLE));
-
+ LLVM_HOSTTRIPLE,
+ Diags));
+
llvm::OwningPtr<Compilation> C(TheDriver->BuildCompilation(argc, argv));
+ // If there were errors building the compilation, quit now.
+ if (Diags.getNumErrors())
+ return 1;
+
return C->Execute();
}
OpenPOWER on IntegriCloud