diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/reload.c | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c84ae79..82ee9a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-12-23 Roger Sayle <roger@eyesopen.com> + + * reload.c (regno_clobbered_p): Add a gcc_assert that regno + refers to a hard register. + 2004-12-23 Mark Mitchell <mark@codesourcery.com> * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p. diff --git a/gcc/reload.c b/gcc/reload.c index 9c0836a..08a22de 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6947,8 +6947,13 @@ int regno_clobbered_p (unsigned int regno, rtx insn, enum machine_mode mode, int sets) { - unsigned int nregs = hard_regno_nregs[regno][mode]; - unsigned int endregno = regno + nregs; + unsigned int nregs, endregno; + + /* regno must be a hard register. */ + gcc_assert (regno < FIRST_PSEUDO_REGISTER); + + nregs = hard_regno_nregs[regno][mode]; + endregno = regno + nregs; if ((GET_CODE (PATTERN (insn)) == CLOBBER || (sets && GET_CODE (PATTERN (insn)) == SET)) |
