From 8c86aa7a7c204d3dda40b76bd361dc3f77de7175 Mon Sep 17 00:00:00 2001 From: "jan.nijtmans" Date: Wed, 24 Apr 2024 19:41:08 +0000 Subject: Better keep Tcl_ConsolePanic as it was (with TCL_NORETURN) --- generic/tcl.h | 2 +- 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: -- cgit v0.12