This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/86455] var-tracking mishandled pre_dec
- From: "vries at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 10 Jul 2018 11:36:37 +0000
- Subject: [Bug debug/86455] var-tracking mishandled pre_dec
- Auto-submitted: auto-generated
- References: <bug-86455-4@http.gcc.gnu.org/bugzilla/>
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86455
--- Comment #1 from Tom de Vries <vries at gcc dot gnu.org> ---
Created attachment 44373
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44373&action=edit
Tentative patch
Using this tentative patch, I get the correct updated insn 132:
...
(insn/f 132 4 133 2 (parallel [
(set (mem:DI (plus:DI (reg/f:DI 16 argp)
(const_int -16 [0xfffffffffffffff0])) [0 S8 A8])
(reg:DI 44 r15))
(set (reg/f:DI 7 sp)
(plus:DI (reg/f:DI 16 argp)
(const_int -16 [0xfffffffffffffff0])))
])
"/home/vries/gcc_versions/devel/src/gcc/testsuite/gcc.dg/guality/csttest.c":10
61 {*pushdi2_rex64}
(expr_list:REG_DEAD (reg:DI 44 r15)
(nil)))
...
and the location for p is ok now:
...
imulq %rax, %rcx
movq %rcx, -8(%rsp)
.LVL20:
# DEBUG p => cx
# csttest.c:25:3
.loc 1 25 3 is_stmt 1
# csttest.c:25:22
.loc 1 25 22 is_stmt 0
movabsq $-4252017623040, %rcx
.LVL21:
# DEBUG p => [argp-0x40]
...
[ The location argp-0x40 is an 8 times 8 byte offset: one for
INCOMING_FRAME_SP_OFFSET, 6 for pushing callee-save regs, and one for
'-8(%rsp)'. ]