From 80ec127fc9af8b83eea326fbd65265a1adc307d8 Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Fri, 20 Apr 2012 17:08:59 +0000 Subject: [PATCH] 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 --- lib/Driver/Driver.cpp | 2 +- tools/driver/driver.cpp | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) 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) -- 2.40.0