From fe58e02b2255c2e0b8258484689e9afc8598fcc0 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 17 Mar 2011 19:51:03 +0000 Subject: [PATCH] Check SUBREG in prepare_call_arguments. 2011-03-17 H.J. Lu PR debug/48160 * var-tracking.c (prepare_call_arguments): Check SUBREG. From-SVN: r171108 --- gcc/ChangeLog | 5 +++++ gcc/var-tracking.c | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7d028f7fae8..887e014cbba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-03-17 H.J. Lu + + PR debug/48160 + * var-tracking.c (prepare_call_arguments): Check SUBREG. + 2011-03-17 H.J. Lu PR target/48171 diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index aab98331df3..7c4c2c57b36 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -5770,7 +5770,11 @@ prepare_call_arguments (basic_block bb, rtx insn) /* Try harder, when passing address of a constant pool integer it can be easily read back. */ - val = CSELIB_VAL_PTR (XEXP (item, 1)); + item = XEXP (item, 1); + if (GET_CODE (item) == SUBREG) + item = SUBREG_REG (item); + gcc_assert (GET_CODE (item) == VALUE); + val = CSELIB_VAL_PTR (item); for (l = val->locs; l; l = l->next) if (GET_CODE (l->loc) == SYMBOL_REF && TREE_CONSTANT_POOL_ADDRESS_P (l->loc) -- 2.30.2