diff options
| -rw-r--r-- | generic/tcl.h | 2 | ||||
| -rw-r--r-- | win/tclWinPanic.c | 16 |
2 files changed, 16 insertions, 2 deletions
diff --git a/generic/tcl.h b/generic/tcl.h index 52288ab..d5951c4 100644 --- a/generic/tcl.h +++ b/generic/tcl.h @@ -2312,7 +2312,7 @@ const char * TclTomMathInitializeStubs(Tcl_Interp *interp, const char * TclInitStubTable(const char *version); void * TclStubCall(void *arg); #if defined(_WIN32) - void Tcl_ConsolePanic(const char *format, ...); + TCL_NORETURN void Tcl_ConsolePanic(const char *format, ...); #else # define Tcl_ConsolePanic NULL #endif diff --git a/win/tclWinPanic.c b/win/tclWinPanic.c index 02bd767..65527f7 100644 --- a/win/tclWinPanic.c +++ b/win/tclWinPanic.c @@ -28,7 +28,7 @@ *---------------------------------------------------------------------- */ -void +TCL_NORETURN void Tcl_ConsolePanic( const char *format, ...) { @@ -63,6 +63,20 @@ Tcl_ConsolePanic( WriteFile(handle, "\n", 1, &dummy, 0); FlushFileBuffers(handle); } +# if defined(__GNUC__) + __builtin_trap(); +# elif defined(_WIN64) + __debugbreak(); +# elif defined(_MSC_VER) + _asm {int 3} +# else + DebugBreak(); +# endif +#if defined(_WIN32) + ExitProcess(1); +#else + abort(); +#endif } /* * Local Variables: |
