http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47624

           Summary: FAIL: gcc.dg/guality/pr43077-1.c  -O1  line 42 c == 3
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: debug
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: sch...@linux-m68k.org
            Target: powerpc*-*-*


Breakpoint 1, fn3 ()
    at /daten/gcc/gcc-20110206/gcc/testsuite/gcc.dg/guality/pr43077-1.c:44
44      }
(gdb) i addr c
Symbol "c" is a complex DWARF expression:
     1: DW_OP_breg4 12 [$r4]
.
(gdb) disass
Dump of assembler code for function fn3:
   0x100004e0 <+0>:     stwu    r1,-32(r1)
   0x100004e4 <+4>:     mflr    r0
   0x100004e8 <+8>:     stw     r0,36(r1)
   0x100004ec <+12>:    li      r0,0
   0x100004f0 <+16>:    stw     r0,8(r1)
   0x100004f4 <+20>:    mr      r4,r1
   0x100004f8 <+24>:    stwu    r0,12(r4)
   0x100004fc <+28>:    addi    r3,r1,8
   0x10000500 <+32>:    bl      0x100004c4 <foo>
=> 0x10000504 <+36>:    lwz     r0,36(r1)
   0x10000508 <+40>:    mtlr    r0
   0x1000050c <+44>:    addi    r1,r1,32
   0x10000510 <+48>:    blr
End of assembler dump.

c is not at $r4+12 but at $r4+0 (or $r1+12) because $r4 has been incremented
when the value was stored.

Reply via email to