toplev.c complains about "unwind tables currently require a frame pointer for correctness".
This patchlet supplies a fix to avoid build warnings/test fails in that it sets flag_omit_frame_pointer to 0 if unwind needs FP. toplev.c:process_options sets flag_unwind_tables depending on flag_non_call_exceptions and flag_asynchronous_unwind_tables after calling targetm.target_option.override() so that the test includes these flags, too. Ok? Johann * config/avr/avr.c (avr_option_override): Set flag_omit_frame_pointer to 0 if frame pointer is needed for unwinding.
Index: config/avr/avr.c =================================================================== --- config/avr/avr.c (revision 179744) +++ config/avr/avr.c (working copy) @@ -351,6 +351,20 @@ avr_option_override (void) { flag_delete_null_pointer_checks = 0; + /* Avoid warning from 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;