diff options
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r-- | gcc/ada/init.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 9b24395..7eee3bf 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -2015,12 +2015,17 @@ __gnat_error_handler (int sig, void *si, struct sigcontext *sc) sigprocmask (SIG_SETMASK, &mask, NULL); #if defined (__PPC__) - /* We process signals through a Call Frame Info trampoline, voiding - the need for myriads of fallback_frame_state variants. */ + /* On PowerPC, we process signals through a Call Frame Info trampoline, + voiding the need for myriads of fallback_frame_state variants in the + ZCX runtime. We have no simple way to distinguish ZCX from SJLJ here, + so we do this for SJLJ as well even though this is not necessary. + This only incurs a few extra instructions and a tiny amount of extra + stack usage. */ #include "sigtramp.h" - __gnat_sigtramp (sig, si, sc, &__gnat_map_signal); + __gnat_sigtramp (sig, (void *)si, (void *)sc, + (sighandler_t *)&__gnat_map_signal); #else __gnat_map_signal (sig, si, sc); |