Message ID | 20110317180658.GA19480@intel.com |
---|---|
State | New |
Headers | show |
On 03/17/2011 11:06 AM, H.J. Lu wrote: > PR debug/48160 > * var-tracking.c (prepare_call_arguments): Check SUBREG. Ok. r~
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c index 266f11f..cfa74a6 100644 --- a/gcc/var-tracking.c +++ b/gcc/var-tracking.c @@ -5763,7 +5763,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)