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

Reply via email to