From 834094639e76f3eb6930b68f86dbc59f7b1f6390 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Sun, 14 May 2006 07:44:21 +0000 Subject: [PATCH] dwarf2out.c (dbx_reg_number): Check return value from LEAF_REG_REMAP and only use it if it is valid. * dwarf2out.c (dbx_reg_number): Check return value from LEAF_REG_REMAP and only use it if it is valid. (multiple_reg_loc_descriptor): Likewise. From-SVN: r113756 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 16 ++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 329acdc27fe4..7a012fabe757 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-05-13 Nick Clifton + + * dwarf2out.c (dbx_reg_number): Check return value from + LEAF_REG_REMAP and only use it if it is valid. + (multiple_reg_loc_descriptor): Likewise. + 2006-05-13 Richard Guenther * config.host : Append i386/x-cygwin to diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 4ef7d029b6f5..accbd01f83a4 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -8477,7 +8477,13 @@ dbx_reg_number (rtx rtl) gcc_assert (regno < FIRST_PSEUDO_REGISTER); #ifdef LEAF_REG_REMAP - regno = LEAF_REG_REMAP (regno); + { + int leaf_reg; + + leaf_reg = LEAF_REG_REMAP (regno); + if (leaf_reg != -1) + regno = (unsigned) leaf_reg; + } #endif return DBX_REGISTER_NUMBER (regno); @@ -8546,7 +8552,13 @@ multiple_reg_loc_descriptor (rtx rtl, rtx regs) reg = REGNO (rtl); #ifdef LEAF_REG_REMAP - reg = LEAF_REG_REMAP (reg); + { + int leaf_reg; + + leaf_reg = LEAF_REG_REMAP (reg); + if (leaf_reg != -1) + reg = (unsigned) leaf_reg; + } #endif gcc_assert ((unsigned) DBX_REGISTER_NUMBER (reg) == dbx_reg_number (rtl)); nregs = hard_regno_nregs[REGNO (rtl)][GET_MODE (rtl)];