[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #8 from ppluzhnikov at google dot com 2009-07-29 22:51 --- Confirm: r149235 fixes the problem here :-) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #7 from jsm28 at gcc dot gnu dot org 2009-07-29 22:48 --- As I understand it this is fixed by the patch shown (r149235), please reopen if not. -- jsm28 at gcc dot gnu dot org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution||FIXED http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
-- steven at gcc dot gnu dot org changed: What|Removed |Added Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #6 from jakub at gcc dot gnu dot org 2009-07-04 17:19 --- Subject: Bug 40596 Author: jakub Date: Sat Jul 4 17:19:26 2009 New Revision: 149235 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=149235 Log: 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. Modified: trunk/gcc/ChangeLog trunk/gcc/dwarf2out.c -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #5 from jakub at gcc dot gnu dot org 2009-07-02 11:30 --- Fix posted: http://gcc.gnu.org/ml/gcc-patches/2009-07/msg00091.html -- jakub at gcc dot gnu dot org changed: What|Removed |Added AssignedTo|unassigned at gcc dot gnu |jakub at gcc dot gnu dot org |dot org | URL||http://gcc.gnu.org/ml/gcc- ||patches/2009- ||07/msg00091.html Status|NEW |ASSIGNED Last reconfirmed|2009-06-29 21:51:45 |2009-07-02 11:30:53 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #4 from jakub at gcc dot gnu dot org 2009-06-29 23:43 --- The problem seems to be in based_loc_descriptor: /* If drap register is used to align stack, use frame pointer + offset to access stack variables. If stack 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 ? HARD_FRAME_POINTER_REGNUM : STACK_POINTER_REGNUM); return new_reg_loc_descr (base_reg, offset); } I don't see how it can be correct to look at cfa variable content in here, when scanning through the function is well over and thus cfa contains whatever was the CFA on the last emitted instruction. Before epilogue unwinding this happened to work, because cfa happened to stay at what was in the middle of the function. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #3 from ppluzhnikov at google dot com 2009-06-29 22:36 --- Confirmed working correctly @147994. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #2 from hjl dot tools at gmail dot com 2009-06-29 21:54 --- This is related to PR 40304. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596
[Bug debug/40596] [4.5 regression] Bad debug info for local variables on i386.
--- Comment #1 from hjl dot tools at gmail dot com 2009-06-29 21:51 --- This is caused by revision 147995: http://gcc.gnu.org/ml/gcc-cvs/2009-05/msg00974.html -- hjl dot tools at gmail dot com changed: What|Removed |Added CC||rth at gcc dot gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|-00-00 00:00:00 |2009-06-29 21:51:45 date|| http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40596