This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/28493] Wrong address of stack object used for destructor call on PPC
- From: "atgraham at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 27 Jul 2006 02:47:22 -0000
- Subject: [Bug target/28493] Wrong address of stack object used for destructor call on PPC
- References: <bug-28493-12114@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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