diff options
author | nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-14 07:44:21 +0000 |
---|---|---|
committer | nickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-05-14 07:44:21 +0000 |
commit | f52ddb745c9c1eecbc56ec0bedf425331b779956 (patch) | |
tree | 1b47169dc4d3107c9bf6a7bbd76f7edc2db65981 /gcc/dwarf2out.c | |
parent | 071ed2eb1720bf3982cc23968adaa37a325d06ac (diff) | |
download | gcc-f52ddb745c9c1eecbc56ec0bedf425331b779956.tar.gz |
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113756 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/dwarf2out.c')
-rw-r--r-- | gcc/dwarf2out.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 4ef7d029b6f..accbd01f83a 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)]; |