diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-02 11:47:42 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-09-02 11:47:42 +0200 |
commit | c5f5123f4a887df97deebeadb993ec95cbac2c22 (patch) | |
tree | f672ad321d9814186c763be811b55b8bc82bf7dd /gcc/ada/tracebak.c | |
parent | 2bfa54844650a8583d41e06717a7374d9d53fd6e (diff) | |
download | gcc-c5f5123f4a887df97deebeadb993ec95cbac2c22.zip gcc-c5f5123f4a887df97deebeadb993ec95cbac2c22.tar.gz gcc-c5f5123f4a887df97deebeadb993ec95cbac2c22.tar.bz2 |
[multiple changes]
2011-09-02 Robert Dewar <dewar@adacore.com>
* exp_ch4.adb, exp_ch6.adb, prj-nmsc.adb: Minor reformatting.
2011-09-02 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Extract_Renamed_Object): Renamed to
Find_Renamed_Object. This routine has been reimplemented and now uses
tree traversal to locate a renamed object.
(Is_Aliased): Replace call to Extract_Renamed_Object with
Find_Renamed_Object.
2011-09-02 Tristan Gingold <gingold@adacore.com>
* init.c: (__gnat_is_vms_v7): New function.
2011-09-02 Olivier Hainque <hainque@adacore.com>
* tracebak.c (STOP_FRAME, ppc elf/vxworks case): Stop on frames
that have a misaligned backchain, necessarily bogus.
From-SVN: r178457
Diffstat (limited to 'gcc/ada/tracebak.c')
-rw-r--r-- | gcc/ada/tracebak.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/tracebak.c b/gcc/ada/tracebak.c index eedc715..a8a200d 100644 --- a/gcc/ada/tracebak.c +++ b/gcc/ada/tracebak.c @@ -259,7 +259,13 @@ struct layout #define FRAME_OFFSET(FP) 0 #define PC_ADJUST -4 -#define STOP_FRAME(CURRENT, TOP_STACK) ((CURRENT)->next == 0) + +/* According to the base PPC ABI, a toplevel frame entry should feature + a null backchain. What happens at signal handler frontiers isn't so + well specified, so we add a safety guard on top. */ + +#define STOP_FRAME(CURRENT, TOP_STACK) \ + ((CURRENT)->next == 0 || ((long)(CURRENT)->next % __alignof__(void*)) != 0) #define BASE_SKIP 1 |