aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/lra-constraints.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b6383aa..df787e1 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2016-11-29 Jeff Law <law@redhat.com>
+
+ * lra-constraints.c (check_and_process_move): Constrain the
+ range of DCLASS and SCLASS to avoid false positive out of bounds
+ array index warning.
+
2016-11-29 David Malcolm <dmalcolm@redhat.com>
* doc/install.texi (--with-target-bdw-gc): Remove stray '@'.
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 133b55c..7784ad2 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -1150,6 +1150,7 @@ check_and_process_move (bool *change_p, bool *sec_mem_p ATTRIBUTE_UNUSED)
sclass = dclass = NO_REGS;
if (REG_P (dreg))
dclass = get_reg_class (REGNO (dreg));
+ gcc_assert (dclass < LIM_REG_CLASSES);
if (dclass == ALL_REGS)
/* ALL_REGS is used for new pseudos created by transformations
like reload of SUBREG_REG (see function
@@ -1161,6 +1162,7 @@ check_and_process_move (bool *change_p, bool *sec_mem_p ATTRIBUTE_UNUSED)
return false;
if (REG_P (sreg))
sclass = get_reg_class (REGNO (sreg));
+ gcc_assert (sclass < LIM_REG_CLASSES);
if (sclass == ALL_REGS)
/* See comments above. */
return false;