diff options
author | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-10 17:25:48 +0000 |
---|---|---|
committer | gjl <gjl@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-10-10 17:25:48 +0000 |
commit | 344ae919589a8974b46b20fd9107e3fa45dd6426 (patch) | |
tree | 401b140b40e5f52e1f44f278bc2e1203f3eb323b | |
parent | fbb424363622e122b4b32e7db9e4fde7adfdad3f (diff) | |
download | ppe42-gcc-344ae919589a8974b46b20fd9107e3fa45dd6426.tar.gz ppe42-gcc-344ae919589a8974b46b20fd9107e3fa45dd6426.zip |
* config/avr/avr.c (avr_option_override): Set
flag_omit_frame_pointer to 0 if frame pointer is needed for
unwinding.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179765 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 15 |
2 files changed, 21 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fc29829d08e..b4bf8978549 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-10-10 Georg-Johann Lay <avr@gjlay.de> + + * config/avr/avr.c (avr_option_override): Set + flag_omit_frame_pointer to 0 if frame pointer is needed for + unwinding. + 2011-10-10 Uros Bizjak <ubizjak@gmail.com> PR bootstrap/50665 diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index c28b593a8b8..d8cc84a6099 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -351,6 +351,21 @@ avr_option_override (void) { flag_delete_null_pointer_checks = 0; + /* Unwind tables currently require a frame pointer for correctness, + see toplev.c:process_options(). */ + + if ((flag_unwind_tables + || flag_non_call_exceptions + || flag_asynchronous_unwind_tables) + && !ACCUMULATE_OUTGOING_ARGS) + { + flag_omit_frame_pointer = 0; + } + else + { + flag_omit_frame_pointer = (optimize >= 1); + } + avr_current_device = &avr_mcu_types[avr_mcu_index]; avr_current_arch = &avr_arch_types[avr_current_device->arch]; avr_extra_arch_macro = avr_current_device->macro; |