aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/seh_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/seh_init.c')
-rw-r--r--gcc/ada/seh_init.c8
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)