aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/seh_init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-07-09 12:46:00 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-07-09 12:46:00 +0200
commitb3f532ce538f8fc13b7af7cc73b94aa43bb03669 (patch)
tree5b16f576baa23d7e0de6a273e17513f322081aef /gcc/ada/seh_init.c
parent31821c0f0338034cb09d16029891d96026d7acee (diff)
downloadgcc-b3f532ce538f8fc13b7af7cc73b94aa43bb03669.zip
gcc-b3f532ce538f8fc13b7af7cc73b94aa43bb03669.tar.gz
gcc-b3f532ce538f8fc13b7af7cc73b94aa43bb03669.tar.bz2
[multiple changes]
2012-07-09 Tristan Gingold <gingold@adacore.com> * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH, return for unknown exceptions. * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler. 2012-07-09 Joel Brobecker <brobecker@adacore.com brobecker> * exp_dbug.ads (No_Dollar_In_Label): Delete. 2012-07-09 Vincent Pucci <pucci@adacore.com> * sem_ch13.adb (Check_Overloaded_Name): New routine. 2012-07-09 Vincent Pucci <pucci@adacore.com> * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the components in a record type. 2012-07-09 Pascal Obry <obry@adacore.com> * prj-util.ads: Minor reformatting. From-SVN: r189369
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)