This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/25176] New: FAIL: Array_3 -O3 execution - bytecode->native test
- From: "amodra at bigpond dot net dot au" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 30 Nov 2005 02:17:53 -0000
- Subject: [Bug target/25176] New: FAIL: Array_3 -O3 execution - bytecode->native test
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
libjava/testsuite/libjava.lang/Array_3.java has failed on powerpc64-linux for
quite a while. See
http://gcc.gnu.org/ml/gcc-testresults/2005-03/msg01215.html. The problem is
that in
static int baz ()
{
int[] x = (int[])null;
int nn = x.length;
return 5;
}
...
try
{
nn = baz ();
}
catch (NullPointerException _)
...
we have
00000000100010b0 <._ZN7Array_33bazEv>:
100010b0: 7c 08 02 a6 mflr r0
100010b4: e8 62 80 50 ld r3,-32688(r2)
100010b8: f8 01 00 10 std r0,16(r1)
100010bc: f8 21 ff 91 stdu r1,-112(r1) <-- new stack frame
100010c0: 4b ff fc b9 bl 10000d78 <._init+0x68>
100010c4: e8 41 00 28 ld r2,40(r1)
100010c8: 39 20 00 00 li r9,0
100010cc: 38 21 00 70 addi r1,r1,112 <- restore old frame
100010d0: 38 60 00 05 li r3,5
100010d4: 80 09 00 08 lwz r0,8(r9) <-- segv here
100010d8: e8 01 00 10 ld r0,16(r1)
100010dc: 7c 08 03 a6 mtlr r0
100010e0: 4e 80 00 20 blr
Note that the faulting instruction has moved past the stack frame restore.
This confuses the dwarf2 unwinder, because no dwarf2 description is emitted for
the function epilogue. We either need a dwarf2 epilogue description or must
prevent any instruction that might cause an exception from being scheduled
after the stack frame restore.
--
Summary: FAIL: Array_3 -O3 execution - bytecode->native test
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: amodra at bigpond dot net dot au
GCC target triplet: powerpc64-linux
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25176