aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChad Rosier <mcrosier@apple.com>2012-04-20 17:08:59 +0000
committerChad Rosier <mcrosier@apple.com>2012-04-20 17:08:59 +0000
commit80ec127fc9af8b83eea326fbd65265a1adc307d8 (patch)
treee337349026827e27d991632fadf8fcf60357833f
parent89592d50466917ee704d0dc0c8a16f1d6f51b689 (diff)
Add a little hack to emulate a clang crash, so the diagnostics generator can be
tested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155205 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Driver/Driver.cpp2
-rw-r--r--tools/driver/driver.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/Driver/Driver.cpp b/lib/Driver/Driver.cpp
index 1ffa9b7b7d..0d105ac0d0 100644
--- a/lib/Driver/Driver.cpp
+++ b/lib/Driver/Driver.cpp
@@ -379,7 +379,7 @@ void Driver::generateCompilationDiagnostics(Compilation &C,
return;
// Don't try to generate diagnostics for link jobs.
- if (FailingCommand->getCreator().isLinkJob())
+ if (FailingCommand && FailingCommand->getCreator().isLinkJob())
return;
Diag(clang::diag::note_drv_command_failed_diag_msg)
diff --git a/tools/driver/driver.cpp b/tools/driver/driver.cpp
index 8c05fff4de..a07738458a 100644
--- a/tools/driver/driver.cpp
+++ b/tools/driver/driver.cpp
@@ -475,6 +475,10 @@ int main(int argc_, const char **argv_) {
if (C.get())
Res = TheDriver.ExecuteCompilation(*C, FailingCommand);
+ // Force a crash to test the diagnostics.
+ if(::getenv("FORCE_CLANG_DIAGNOSTICS_CRASH"))
+ Res = -1;
+
// If result status is < 0, then the driver command signalled an error.
// In this case, generate additional diagnostic information if possible.
if (Res < 0)