From 3be2d12bdec9ec3a244aae695d3b586ac27dcfde Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Tue, 22 Sep 2009 15:58:35 +0000 Subject: [PATCH] Hide MSVC specific CRT interaction behind _MSC_VER. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82551 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/System/Win32/Signals.inc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/System/Win32/Signals.inc b/lib/System/Win32/Signals.inc index 699df769f9b..ca43bbf5972 100644 --- a/lib/System/Win32/Signals.inc +++ b/lib/System/Win32/Signals.inc @@ -58,6 +58,7 @@ namespace llvm { //=== and must not be UNIX code //===----------------------------------------------------------------------===// +#ifdef _MSC_VER /// CRTReportHook - Function called on a CRT debugging event. static int CRTReportHook(int ReportType, char *Message, int *Return) { // Don't cause a DebugBreak() on return. @@ -86,6 +87,7 @@ static int CRTReportHook(int ReportType, char *Message, int *Return) { // Don't call _CrtDbgReport. return TRUE; } +#endif static void RegisterHandler() { if (RegisteredUnhandledExceptionFilter) { @@ -106,10 +108,12 @@ static void RegisterHandler() { SetConsoleCtrlHandler(LLVMConsoleCtrlHandler, TRUE); // Environment variable to disable any kind of crash dialog. +#ifdef _MSC_VER if (getenv("LLVM_DISABLE_CRT_DEBUG")) { _CrtSetReportHook(CRTReportHook); - ExitOnUnhandledExceptions = true; + ExitOnUnhandledExceptions = true; } +#endif // IMPORTANT NOTE: Caller must call LeaveCriticalSection(&CriticalSection) or // else multi-threading problems will ensue. @@ -270,8 +274,10 @@ static LONG WINAPI LLVMUnhandledExceptionFilter(LPEXCEPTION_POINTERS ep) { assert(0 && "Crashed in LLVMUnhandledExceptionFilter"); } +#ifdef _MSC_VER if (ExitOnUnhandledExceptions) _exit(-3); +#endif // Allow dialog box to pop up allowing choice to start debugger. if (OldFilter) -- 2.11.0