So this is a simple fix is to just add to the assert that
sclass and dclass are both greater than or equal to NO_REGS.
NO_REGS is documented as the first register class so it should
have the value of 0.
gcc/ChangeLog:
* lra-constraints.c (check_and_process_move): Assert
that dclass and sclass are greater than or equal to NO_REGS.
sclass = dclass = NO_REGS;
if (REG_P (dreg))
dclass = get_reg_class (REGNO (dreg));
- gcc_assert (dclass < LIM_REG_CLASSES);
+ gcc_assert (dclass < LIM_REG_CLASSES && dclass >= NO_REGS);
if (dclass == ALL_REGS)
/* ALL_REGS is used for new pseudos created by transformations
like reload of SUBREG_REG (see function
return false;
if (REG_P (sreg))
sclass = get_reg_class (REGNO (sreg));
- gcc_assert (sclass < LIM_REG_CLASSES);
+ gcc_assert (sclass < LIM_REG_CLASSES && sclass >= NO_REGS);
if (sclass == ALL_REGS)
/* See comments above. */
return false;