Commit 7d4507cb by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/41236 (RTL checking failure compiling libgcc)

	PR debug/41236
	* dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
	SIGN_EXTEND or ZERO_EXTEND.  Don't assume there is a REG inside of
	it or SUBREG.

From-SVN: r151385
parent 08ab0acf
2009-09-03 Jakub Jelinek <jakub@redhat.com>
PR debug/41236
* dwarf2out.c (loc_descriptor): Don't use SUBREG_REG macro on
SIGN_EXTEND or ZERO_EXTEND. Don't assume there is a REG inside of
it or SUBREG.
PR debug/41238
* function.c (assign_parm_find_stack_rtl): Don't set mem attributes on
the stack slot if it is passed by invisible reference.
......
......@@ -11671,21 +11671,23 @@ loc_descriptor (rtx rtl, enum machine_mode mode,
switch (GET_CODE (rtl))
{
case SUBREG:
case SIGN_EXTEND:
case ZERO_EXTEND:
/* The case of a subreg may arise when we have a local (register)
variable or a formal (register) parameter which doesn't quite fill
up an entire register. For now, just assume that it is
legitimate to make the Dwarf info refer to the whole register which
contains the given subreg. */
rtl = SUBREG_REG (rtl);
/* ... fall through ... */
loc_result = loc_descriptor (SUBREG_REG (rtl), mode, initialized);
break;
case REG:
loc_result = reg_loc_descriptor (rtl, initialized);
break;
case SIGN_EXTEND:
case ZERO_EXTEND:
loc_result = loc_descriptor (XEXP (rtl, 0), mode, initialized);
break;
case MEM:
loc_result = mem_loc_descriptor (XEXP (rtl, 0), GET_MODE (rtl),
initialized);
......
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