re PR debug/40596 (Bad debug info for local variables on i386.)

PR debug/40596
	* dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
	don't check cfa.reg.  Instead of cfa.indirect use
	fde && fde->drap_reg != INVALID_REGNUM test.

From-SVN: r149235
This commit is contained in:
Jakub Jelinek 2009-07-04 19:19:26 +02:00 committed by Jakub Jelinek
parent 39ba6ab7fb
commit bd5b2c2d07
2 changed files with 8 additions and 2 deletions

View File

@ -1,3 +1,10 @@
2009-07-04 Jakub Jelinek <jakub@redhat.com>
PR debug/40596
* dwarf2out.c (based_loc_descr): For crtl->stack_realign_tried
don't check cfa.reg. Instead of cfa.indirect use
fde && fde->drap_reg != INVALID_REGNUM test.
2009-07-04 Eric Botcazou <ebotcazou@adacore.com>
* postreload.c (reload_combine): Replace CONST_REG with INDEX_REG.

View File

@ -10256,11 +10256,10 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset,
is aligned without drap, use stack pointer + offset to
access stack variables. */
if (crtl->stack_realign_tried
&& cfa.reg == HARD_FRAME_POINTER_REGNUM
&& reg == frame_pointer_rtx)
{
int base_reg
= DWARF_FRAME_REGNUM (cfa.indirect
= DWARF_FRAME_REGNUM ((fde && fde->drap_reg != INVALID_REGNUM)
? HARD_FRAME_POINTER_REGNUM
: STACK_POINTER_REGNUM);
return new_reg_loc_descr (base_reg, offset);