diff options
Diffstat (limited to 'gcc/ada/seh_init.c')
-rw-r--r-- | gcc/ada/seh_init.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/seh_init.c b/gcc/ada/seh_init.c index fa5310f..84c5d3b 100644 --- a/gcc/ada/seh_init.c +++ b/gcc/ada/seh_init.c @@ -178,9 +178,15 @@ __gnat_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord, msg = "EXCEPTION_STACK_OVERFLOW"; break; - default: + default: +#if defined (_WIN64) && defined (__SEH__) + /* On Windows x64, do not transform other exception as they could + be caught by user (when SEH is used to propagate exceptions). */ + return; +#else exception = &program_error; msg = "unhandled signal"; +#endif } #if ! defined (_WIN64) |