diff options
Diffstat (limited to 'libgcc')
-rw-r--r-- | libgcc/ChangeLog | 7 | ||||
-rw-r--r-- | libgcc/unwind-dw2.c | 11 |
2 files changed, 13 insertions, 5 deletions
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 61f5cc07..aa10774 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,3 +1,10 @@ +2013-03-14 Jakub Jelinek <jakub@redhat.com> + + PR tree-optimization/53265 + * unwind-dw2.c (execute_cfa_program): Avoid + -Waggressive-array-optimizations warnings for DW_CFA_GNU_window_save + on targets with DWARF_FRAME_REGISTERS < 32. + 2013-03-13 Oleg Endo <olegendo@gcc.gnu.org> PR target/49880 diff --git a/libgcc/unwind-dw2.c b/libgcc/unwind-dw2.c index 101a828..80de5ab 100644 --- a/libgcc/unwind-dw2.c +++ b/libgcc/unwind-dw2.c @@ -1128,11 +1128,12 @@ execute_cfa_program (const unsigned char *insn_ptr, case DW_CFA_GNU_window_save: /* ??? Hardcoded for SPARC register window configuration. */ - for (reg = 16; reg < 32; ++reg) - { - fs->regs.reg[reg].how = REG_SAVED_OFFSET; - fs->regs.reg[reg].loc.offset = (reg - 16) * sizeof (void *); - } + if (DWARF_FRAME_REGISTERS >= 32) + for (reg = 16; reg < 32; ++reg) + { + fs->regs.reg[reg].how = REG_SAVED_OFFSET; + fs->regs.reg[reg].loc.offset = (reg - 16) * sizeof (void *); + } break; case DW_CFA_GNU_args_size: |