aboutsummaryrefslogtreecommitdiff
path: root/libgcc
diff options
context:
space:
mode:
Diffstat (limited to 'libgcc')
-rw-r--r--libgcc/ChangeLog7
-rw-r--r--libgcc/unwind-dw2.c11
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: