aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/raise-gcc.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-06-14 12:46:14 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-06-14 12:46:14 +0200
commit758ad97333838b7e5e839100a927b6cadbd030d3 (patch)
tree8022f62e88e8a45e5256b4ea139d3f253429a975 /gcc/ada/raise-gcc.c
parent34f3a7014b95e058d68adc1bee2e357e38056dec (diff)
downloadgcc-758ad97333838b7e5e839100a927b6cadbd030d3.zip
gcc-758ad97333838b7e5e839100a927b6cadbd030d3.tar.gz
gcc-758ad97333838b7e5e839100a927b6cadbd030d3.tar.bz2
[multiple changes]
2012-06-14 Gary Dismukes <dismukes@adacore.com> * exp_ch9.adb: Minor reformatting. 2012-06-14 Thomas Quinot <quinot@adacore.com> * freeze.adb (Freeze_Record_Type): Warn about useless bit order specification [when there's no component clause] regardless of whether the specified bit order is reversed or not. 2012-06-14 Tristan Gingold <gingold@adacore.com> * raise-gcc.c (__gnat_personality_seh0): New function. 2012-06-14 Tristan Gingold <gingold@adacore.com> * gnatname.adb (Gnatname): Make sure that dynamic table argument_data is initialized. 2012-06-14 Robert Dewar <dewar@adacore.com> * sem_aux.adb: Minor code reorganization. From-SVN: r188608
Diffstat (limited to 'gcc/ada/raise-gcc.c')
-rw-r--r--gcc/ada/raise-gcc.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/ada/raise-gcc.c b/gcc/ada/raise-gcc.c
index b29d3b5..1cfb622 100644
--- a/gcc/ada/raise-gcc.c
+++ b/gcc/ada/raise-gcc.c
@@ -1026,6 +1026,8 @@ extern void __gnat_notify_unhandled_exception (void);
#ifdef __USING_SJLJ_EXCEPTIONS__
#define PERSONALITY_FUNCTION __gnat_personality_sj0
+#elif defined(__SEH__)
+#define PERSONALITY_FUNCTION __gnat_personality_imp
#else
#define PERSONALITY_FUNCTION __gnat_personality_v0
#endif
@@ -1061,6 +1063,9 @@ typedef int version_arg_t;
typedef _Unwind_Action phases_arg_t;
#endif
+#ifdef __SEH__
+static
+#endif
_Unwind_Reason_Code
PERSONALITY_FUNCTION (version_arg_t, phases_arg_t,
_Unwind_Exception_Class, _Unwind_Exception *,
@@ -1208,6 +1213,16 @@ __gnat_Unwind_ForcedUnwind (_Unwind_Exception *e,
#endif /* __USING_SJLJ_EXCEPTIONS__ */
+#ifdef __SEH__
+EXCEPTION_DISPOSITION
+__gnat_personality_seh0 (PEXCEPTION_RECORD ms_exc, void *this_frame,
+ PCONTEXT ms_orig_context,
+ PDISPATCHER_CONTEXT ms_disp)
+{
+ return _GCC_specific_handler (ms_exc, this_frame, ms_orig_context,
+ ms_disp, __gnat_personality_imp);
+}
+#endif /* SEH */
#else
/* ! IN_RTS */