------- Comment #2 from atgraham at gmail dot com  2006-07-27 02:47 -------
This bug appears to only happen when the compiler is built with SjLj
exceptions.  When the compiler is built for dwarf2 exceptions, this test case
(and my original problem area) are both correct:

00000000 <tryfunc()>:
   0:   94 21 ff d0     stwu    r1,-48(r1)
   4:   7c 08 02 a6     mflr    r0
   8:   38 61 00 08     addi    r3,r1,8
   c:   90 01 00 34     stw     r0,52(r1)
  10:   bf a1 00 24     stmw    r29,36(r1)
  14:   48 00 00 01     bl      14 <tryfunc()+0x14>
                        14: R_PPC_REL24 Command::Command()
  18:   38 60 00 04     li      r3,4
  1c:   48 00 00 01     bl      1c <tryfunc()+0x1c>
                        1c: R_PPC_REL24 __cxa_allocate_exception
  20:   38 00 00 01     li      r0,1
  24:   3c 80 00 00     lis     r4,0
                        26: R_PPC_ADDR16_HA     typeinfo for int
  28:   90 03 00 00     stw     r0,0(r3)
  2c:   38 84 00 00     addi    r4,r4,0
                        2e: R_PPC_ADDR16_LO     typeinfo for int
  30:   38 a0 00 00     li      r5,0
  34:   48 00 00 01     bl      34 <tryfunc()+0x34>
                        34: R_PPC_REL24 __cxa_throw
  38:   7c 7d 1b 78     mr      r29,r3
  3c:   38 61 00 08     addi    r3,r1,8
  40:   48 00 00 01     bl      40 <tryfunc()+0x40>
                        40: R_PPC_REL24 Command::~Command()
  44:   7f a3 eb 78     mr      r3,r29
  48:   48 00 00 01     bl      48 <tryfunc()+0x48>
                        48: R_PPC_REL24 _Unwind_Resume


-- 


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

Reply via email to