diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-07-09 12:46:00 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2012-07-09 12:46:00 +0200 |
commit | b3f532ce538f8fc13b7af7cc73b94aa43bb03669 (patch) | |
tree | 5b16f576baa23d7e0de6a273e17513f322081aef /gcc/ada/seh_init.c | |
parent | 31821c0f0338034cb09d16029891d96026d7acee (diff) | |
download | gcc-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.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) |