aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/seh_init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2012-07-17 11:49:48 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2012-07-17 11:49:48 +0200
commitf080def5134dc47dcb997778a35858f208c2c393 (patch)
treeca28973deac660af91e6de4aba33237e1ac95b34 /gcc/ada/seh_init.c
parent2767f2cc5cc916f4a99cbfd510cf5a5454c54221 (diff)
downloadgcc-f080def5134dc47dcb997778a35858f208c2c393.zip
gcc-f080def5134dc47dcb997778a35858f208c2c393.tar.gz
gcc-f080def5134dc47dcb997778a35858f208c2c393.tar.bz2
[multiple changes]
2012-07-17 Robert Dewar <dewar@adacore.com> * exp_ch9.adb: Minor code reorganization. * exp_ch3.adb: Minor code improvement. 2012-07-17 Tristan Gingold <gingold@adacore.com> * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore on Windows 64 (+ SEH), as it is unused. 2012-07-17 Tristan Gingold <gingold@adacore.com> * treepr.ads (psloc): Declare. * treepr.adb (psloc): New debug procedure to print a sloc. (Print_Sloc): New procedure, from ... (Print_Node_Subtree): ... this. Call Print_Sloc. 2012-07-17 Javier Miranda <miranda@adacore.com> * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into CPP convention automatically. From-SVN: r189566
Diffstat (limited to 'gcc/ada/seh_init.c')
-rw-r--r--gcc/ada/seh_init.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/gcc/ada/seh_init.c b/gcc/ada/seh_init.c
index 2f7fee4..772dab0 100644
--- a/gcc/ada/seh_init.c
+++ b/gcc/ada/seh_init.c
@@ -169,9 +169,11 @@ __gnat_map_SEH (EXCEPTION_RECORD* ExceptionRecord, const char **msg)
}
}
+#if !(defined (_WIN64) && defined (__SEH__))
+
EXCEPTION_DISPOSITION
__gnat_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
- void *EstablisherFrame,
+ void *EstablisherFrame ATTRIBUTE_UNUSED,
struct _CONTEXT* ContextRecord ATTRIBUTE_UNUSED,
void *DispatcherContext ATTRIBUTE_UNUSED)
{
@@ -182,14 +184,8 @@ __gnat_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
if (exception == NULL)
{
-#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)
@@ -204,6 +200,7 @@ __gnat_SEH_error_handler (struct _EXCEPTION_RECORD* ExceptionRecord,
Raise_From_Signal_Handler (exception, msg);
return 0; /* This is never reached, avoid compiler warning */
}
+#endif /* !(defined (_WIN64) && defined (__SEH__)) */
#if defined (_WIN64)
/* On x86_64 windows exception mechanism is no more based on a chained list