diff options
author | Alan Modra <amodra@gmail.com> | 2017-09-18 11:55:10 +0930 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2017-09-18 11:55:10 +0930 |
commit | a24f02ffdb51513c05369f600dfff62329a6c8a1 (patch) | |
tree | 0b9349065d60fb914971689fffdd7e3e7c0de184 /ChangeLog | |
parent | f26a27f300a72e89e4314adc95182f5433754033 (diff) | |
download | gcc-a24f02ffdb51513c05369f600dfff62329a6c8a1.zip gcc-a24f02ffdb51513c05369f600dfff62329a6c8a1.tar.gz gcc-a24f02ffdb51513c05369f600dfff62329a6c8a1.tar.bz2 |
[RS6000] PR81996, __builtin_return_address(0) fails
rs6000_return_addr assumes that the stack link is at frame+0, which is
true for count>0. For count==0, rs6000_return_addr is called with
frame==frame_pointer_rtx and the stack link is *not* at frame+0 if
-fstack-protector-all or -fsanitize=address because rs6000.h sets
FRAME_GROWS_DOWNWARD for those options.
PR target/81996
* gcc/config/rs6000/rs6000.c (rs6000_return_addr): Use
stack_pointer_rtx for count 0. Update comments. Break up
large rtl expression.
From-SVN: r252901
Diffstat (limited to 'ChangeLog')
0 files changed, 0 insertions, 0 deletions