mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-13 20:32:21 +00:00
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
This commit is contained in:
parent
92d32367ef
commit
3be2d12bde
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user