diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-10-13 12:22:28 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-10-13 12:22:28 +0200 |
commit | 8097203fc3a4cbd63b668dac627739abd2b40445 (patch) | |
tree | 55ac24cad2bc7f6de6233500cd26d00143a0d077 /gcc/ada/init.c | |
parent | e192a2cd62f2ed824f93edab18d9a5aabf764784 (diff) | |
download | gcc-8097203fc3a4cbd63b668dac627739abd2b40445.zip gcc-8097203fc3a4cbd63b668dac627739abd2b40445.tar.gz gcc-8097203fc3a4cbd63b668dac627739abd2b40445.tar.bz2 |
[multiple changes]
2011-10-13 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Analyze_Formal_{Floating_Type,
Signed_Integer_Type, Decimal_Fixed_Point_Type, Discrete_Type}):
Use sloc of defining identifier of farmal type declaration,
as sloc of generated internal entity, to prevent misplaced
references in ali.
2011-10-13 Ed Schonberg <schonberg@adacore.com>
* sem_intr.adb (Check_Intrinsic_Operator): Check that type
is fully defined before checking that it is a numeric type.
2011-10-13 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Resolve_Record_Aggregate): If a component
association for component X has a box, then X is covered in the
aggregate even if there is not default value for X in the type
declaration, and X has to be default-initialized.
2011-10-13 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Check_Enum_Image, Analyze_Attribute case
'Value): Mark literals as referenced only if reference is in
current source unit.
2011-10-13 Matthew Heaney <heaney@adacore.com>
* a-csquin.ads (Enque, Dequeue): Mark interface operations as entries.
2011-10-13 Olivier Hainque <hainque@adacore.com>
* sigtramp.h: New file. Prototype and spec of the signal
trampoline to be called by an established handler to provide
dwarf call frame info before the real signal processing code.
* sigtramp-ppcvxw.c: New file. Implementation of the signal
trampoline for ppc-vxworks.
* init.c (vxworks section): Use it for ppc.
From-SVN: r179899
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r-- | gcc/ada/init.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c index 0cf32e8..9b24395 100644 --- a/gcc/ada/init.c +++ b/gcc/ada/init.c @@ -1906,7 +1906,8 @@ __gnat_clear_exception_count (void) /* Handle different SIGnal to exception mappings in different VxWorks versions. */ static void -__gnat_map_signal (int sig) +__gnat_map_signal (int sig, void *si ATTRIBUTE_UNUSED, + struct sigcontext *sc ATTRIBUTE_UNUSED) { struct Exception_Data *exception; const char *msg; @@ -2001,9 +2002,7 @@ __gnat_map_signal (int sig) propagation after the required low level adjustments. */ void -__gnat_error_handler (int sig, - void *si ATTRIBUTE_UNUSED, - struct sigcontext *sc ATTRIBUTE_UNUSED) +__gnat_error_handler (int sig, void *si, struct sigcontext *sc) { sigset_t mask; @@ -2015,7 +2014,17 @@ __gnat_error_handler (int sig, sigdelset (&mask, sig); sigprocmask (SIG_SETMASK, &mask, NULL); - __gnat_map_signal (sig); +#if defined (__PPC__) + /* We process signals through a Call Frame Info trampoline, voiding + the need for myriads of fallback_frame_state variants. */ + + #include "sigtramp.h" + + __gnat_sigtramp (sig, si, sc, &__gnat_map_signal); + +#else + __gnat_map_signal (sig, si, sc); +#endif } void |