Commit 2b9d5ad7 by Alexandre Oliva Committed by Alexandre Oliva

re PR debug/53820 (ICE in vt_expand_var_loc_chain, at var-tracking.c:8029)

PR debug/53820
* var-tracking.c (vt_add_function_parameter): Convert
internal_arg_pointer into arg_pointer-based address even
without DRAP.

From-SVN: r189326
parent fe8fb1c4
2012-07-06 Alexandre Oliva <aoliva@redhat.com>
PR debug/53820
* var-tracking.c (vt_add_function_parameter): Convert
internal_arg_pointer into arg_pointer-based address even
without DRAP.
2012-07-06 Alexandre Oilva <aoliva@redhat.com>
PR rtl-optimization/53827
......
......@@ -9327,14 +9327,11 @@ vt_add_function_parameter (tree parm)
if (GET_MODE (decl_rtl) == BLKmode || GET_MODE (incoming) == BLKmode)
return;
/* If there is a DRAP register, rewrite the incoming location of parameters
passed on the stack into MEMs based on the argument pointer, as the DRAP
register can be reused for other purposes and we do not track locations
based on generic registers. But the prerequisite is that this argument
pointer be also the virtual CFA pointer, see vt_initialize. */
/* If there is a DRAP register or a pseudo in internal_arg_pointer,
rewrite the incoming location of parameters passed on the stack
into MEMs based on the argument pointer, so that incoming doesn't
depend on a pseudo. */
if (MEM_P (incoming)
&& stack_realign_drap
&& arg_pointer_rtx == cfa_base_rtx
&& (XEXP (incoming, 0) == crtl->args.internal_arg_pointer
|| (GET_CODE (XEXP (incoming, 0)) == PLUS
&& XEXP (XEXP (incoming, 0), 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment