From b27981e06b8ae5972ea24ca63e9d07f5453aa234 Mon Sep 17 00:00:00 2001 From: Hariharan Sandanagobalane Date: Thu, 12 May 2011 11:12:12 +0000 Subject: [PATCH] ira.c (clarify_prohibited_class_mode_regs): Prevent the function from accessing beyond the end of REGNO_REG_CLASS array by... * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from accessing beyond the end of REGNO_REG_CLASS array by stopping the loop early. From-SVN: r173699 --- gcc/ChangeLog | 6 ++++++ gcc/ira.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8dcd8b95fd8..4bb674995f7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-05-12 Hariharan Sandanagobalane + + * ira.c (clarify_prohibited_class_mode_regs): Prevent the function from + accessing beyond the end of REGNO_REG_CLASS array by stopping the loop + early. + 2011-05-12 DJ Delorie (rx_builtins): New arrays - holds builtin functions. diff --git a/gcc/ira.c b/gcc/ira.c index 32dfa18ce19..9235cb3f94b 100644 --- a/gcc/ira.c +++ b/gcc/ira.c @@ -1422,6 +1422,12 @@ clarify_prohibited_class_mode_regs (void) if (TEST_HARD_REG_BIT (ira_prohibited_class_mode_regs[cl][j], hard_regno)) continue; nregs = hard_regno_nregs[hard_regno][j]; + if (hard_regno + nregs > FIRST_PSEUDO_REGISTER) + { + SET_HARD_REG_BIT (ira_prohibited_class_mode_regs[cl][j], + hard_regno); + continue; + } pclass = ira_pressure_class_translate[REGNO_REG_CLASS (hard_regno)]; for (nregs-- ;nregs >= 0; nregs--) if (((enum reg_class) pclass -- 2.30.2