@@ -1854,6 +1854,7 @@ var_reg_decl_set (dataflow_set *set, rtx loc, enum var_init_status initialized,
if (decl_p)
dv = dv_from_decl (var_debug_decl (dv_as_decl (dv)));
+ gcc_assert (REGNO (loc) < FIRST_PSEUDO_REGISTER);
for (node = set->regs[REGNO (loc)]; node; node = node->next)
if (dv_as_opaque (node->dv) == dv_as_opaque (dv)
&& node->offset == offset)
@@ -1925,6 +1926,7 @@ var_reg_delete_and_set (dataflow_set *set, rtx loc, bool modify,
if (initialized == VAR_INIT_STATUS_UNKNOWN)
initialized = get_init_value (set, loc, dv_from_decl (decl));
+ gcc_assert (REGNO (loc) < FIRST_PSEUDO_REGISTER);
nextp = &set->regs[REGNO (loc)];
for (node = *nextp; node; node = next)
{
@@ -1954,6 +1956,7 @@ var_reg_delete_and_set (dataflow_set *set, rtx loc, bool modify,
static void
var_reg_delete (dataflow_set *set, rtx loc, bool clobber)
{
+ gcc_assert (REGNO (loc) < FIRST_PSEUDO_REGISTER);
attrs *nextp = &set->regs[REGNO (loc)];
attrs node, next;
@@ -1986,6 +1989,7 @@ var_reg_delete (dataflow_set *set, rtx loc, bool clobber)
static void
var_regno_delete (dataflow_set *set, int regno)
{
+ gcc_assert (regno < FIRST_PSEUDO_REGISTER);
attrs *reg = &set->regs[regno];
attrs node, next;
@@ -2630,6 +2634,7 @@ val_resolve (dataflow_set *set, rtx val, rtx loc, rtx_insn *insn)
{
attrs node, found = NULL;
+ gcc_assert (REGNO (loc) < FIRST_PSEUDO_REGISTER);
for (node = set->regs[REGNO (loc)]; node; node = node->next)
if (dv_is_value_p (node->dv)
&& GET_MODE (dv_as_value (node->dv)) == GET_MODE (loc))
@@ -3784,6 +3789,7 @@ canonicalize_values_star (variable_def **slot, dataflow_set *set)
}
else if (GET_CODE (node->loc) == REG)
{
+ gcc_assert (REGNO (node->loc) < FIRST_PSEUDO_REGISTER);
attrs list = set->regs[REGNO (node->loc)], *listp;
/* Change an existing attribute referring to dv so that it
@@ -4045,6 +4051,7 @@ variable_merge_over_cur (variable s1var, struct dfset_merge *dsm)
{
attrs list;
+ gcc_assert (REGNO (node->loc) < FIRST_PSEUDO_REGISTER);
for (list = dst->regs[REGNO (node->loc)]; list; list = list->next)
if (GET_MODE (node->loc) == GET_MODE (list->loc)
&& dv_is_value_p (list->dv))
@@ -4426,6 +4433,7 @@ variable_post_merge_new_vals (variable_def **slot, dfset_post_merge *dfpm)
goto restart;
}
+ gcc_assert (REGNO (node->loc) < FIRST_PSEUDO_REGISTER);
for (attp = &set->regs[REGNO (node->loc)]; (att = *attp);
attp = &att->next)
if (att->offset == 0
@@ -4466,6 +4474,7 @@ variable_post_merge_new_vals (variable_def **slot, dfset_post_merge *dfpm)
dataflow_set_init (*dfpm->permp);
}
+ gcc_assert (REGNO (node->loc) < FIRST_PSEUDO_REGISTER);
for (att = (*dfpm->permp)->regs[REGNO (node->loc)];
att; att = att->next)
if (GET_MODE (att->loc) == GET_MODE (node->loc))
@@ -4561,6 +4570,7 @@ variable_post_merge_perm_vals (variable_def **pslot, dfset_post_merge *dfpm)
val_reset (set, dv);
}
+ gcc_assert (REGNO (pnode->loc) < FIRST_PSEUDO_REGISTER);
for (att = set->regs[REGNO (pnode->loc)]; att; att = att->next)
if (att->offset == 0
&& GET_MODE (att->loc) == GET_MODE (pnode->loc)
@@ -7837,6 +7853,7 @@ clobber_slot_part (dataflow_set *set, rtx loc, variable_def **slot,
list, but preserve any other variable parts
that might be regarded as live in that same
register. */
+ gcc_assert (REGNO (node->loc) < FIRST_PSEUDO_REGISTER);
anextp = &set->regs[REGNO (node->loc)];
for (anode = *anextp; anode; anode = anext)
{