diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2011-10-10 17:25:48 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2011-10-10 17:25:48 +0000 |
commit | 16bbc875910db480ef1a9207423b78386050fe28 (patch) | |
tree | 401b140b40e5f52e1f44f278bc2e1203f3eb323b | |
parent | 19f4664b8da1e50fa56e18a8c5e32ab16bbc7489 (diff) | |
download | gcc-16bbc875910db480ef1a9207423b78386050fe28.zip gcc-16bbc875910db480ef1a9207423b78386050fe28.tar.gz gcc-16bbc875910db480ef1a9207423b78386050fe28.tar.bz2 |
avr.c (avr_option_override): Set flag_omit_frame_pointer to 0 if frame pointer is needed for unwinding.
* config/avr/avr.c (avr_option_override): Set
flag_omit_frame_pointer to 0 if frame pointer is needed for
unwinding.
From-SVN: r179765
-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 fc29829..b4bf897 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 c28b593a8..d8cc84a 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; |