Install SEH handler for mingw signal exceptions on all builds.
Remove usage of UnhandledExceptionFilter.
Simplify and deduplicate error handler code.
Pali Rohár (12):
crt: crt_handler: Replace return numeric values by enum values in
__mingw_SEH_error_handler() function
crt: crt_handler: Propagate SEH EXCEPTION_INT_OVERFLOW exception also
in 64-bit binaries
crt: crt_handler: Add explicit __cdecl for __mingw_SEH_error_handler
crt: crt_handler: Move __mingw_init_ehandler specific definitions into
appropriate ifdef section
crt: crt_handler: Skip processing of unwind calls in
__mingw_SEH_error_handler
crt: crt_handler: Enable __mingw_SEH_error_handler code for all builds
crt: crt_handler: Register top level SEH handler
__mingw_SEH_error_handler for 32-bit x86 builds
crt: crt_handler: Remove registration of _gnu_exception_handler as
UnhandledExceptionFilter
crt: crt_handler: Define _gnu_exception_handler as wrapper around the
__mingw_SEH_error_handler
crt: crt_handler: Switch from
__C_specific_handler+_gnu_exception_handler to
__mingw_SEH_error_handler
crt: Show error message when some of __xi_a - __xi_z callbacks fails
at startup
crt: crt_handler: Move registration of __mingw_SEH_error_handler to
the top of __tmainCRTStartup function
mingw-w64-crt/crt/crt_handler.c | 160 ++++++++--------------------
mingw-w64-crt/crt/crtexe.c | 78 +++++---------
mingw-w64-crt/testcases/Makefile.am | 1 +
mingw-w64-crt/testcases/t_sigfpe.c | 31 ++++++
4 files changed, 104 insertions(+), 166 deletions(-)
create mode 100644 mingw-w64-crt/testcases/t_sigfpe.c
--
2.20.1
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public