OSDN Git Service

Hide MSVC specific CRT interaction behind _MSC_VER.
authorDaniel Dunbar <daniel@zuster.org>
Tue, 22 Sep 2009 15:58:35 +0000 (15:58 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Tue, 22 Sep 2009 15:58:35 +0000 (15:58 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82551 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Win32/Signals.inc

index 699df76..ca43bbf 100644 (file)
@@ -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)