From: Chad Rosier Date: Fri, 20 Apr 2012 17:08:59 +0000 (+0000) Subject: Add a little hack to emulate a clang crash, so the diagnostics generator can be X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80ec127fc9af8b83eea326fbd65265a1adc307d8;p=clang 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 --- 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)