This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/47324] New: g++.dg/torture/stackalign failures with -O3 -g at -m32 on darwin
- From: "howarth at nitro dot med.uc.edu" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 16 Jan 2011 22:02:11 +0000
- Subject: [Bug target/47324] New: g++.dg/torture/stackalign failures with -O3 -g at -m32 on darwin
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47324
Summary: g++.dg/torture/stackalign failures with -O3 -g at -m32
on darwin
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: howarth@nitro.med.uc.edu
This is the last remaining breakage with the stackalign tests on x86 darwin10.
We are failing...
FAIL: g++.dg/torture/stackalign/eh-alloca-1.C -O3 -g execution test
FAIL: g++.dg/torture/stackalign/eh-vararg-1.C -O3 -g execution test
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C -O3 -g execution test
FAIL: g++.dg/torture/stackalign/eh-alloca-1.C -O3 -g execution test
FAIL: g++.dg/torture/stackalign/eh-vararg-1.C -O3 -g execution test
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C -O3 -g execution test
These tests don't fail their execution tests if the -g is omitted. However if I
take a failing test and strip the eh-alloca-1.o object file created with -g
using 'strip -S eh-alloca-1.o' and relink the testcase it still fails. So the
failure is dependent on -g being passed to the testcase but not the debug code
generated.
Comparing the disassembled eh-alloca-1.o file (using 'otool -tv eh-alloca-1.o')
created with -g0 to that created with -g and then stripped with 'strip -S', I
find the following diff.
--- disasm_g0.txt 2011-01-16 16:33:15.000000000 -0500
+++ disasm_g_stripped.tex 2011-01-16 16:52:28.000000000 -0500
@@ -76,10 +76,10 @@
000000ed calll 0x100000000
000000f2 movl $0x00000004,(%esp)
000000f9 calll 0x100000000
-000000fe movl 0x000002cb(%ebx),%edx
+000000fe movl 0x00000d50(%ebx),%edx
00000104 addl $0x0c,%edx
00000107 movl %edx,(%eax)
-00000109 movl 0x000002d3(%ebx),%edx
+00000109 movl 0x00000d58(%ebx),%edx
0000010f movl $0x00000000,0x08(%esp)
00000117 movl %eax,(%esp)
0000011a movl %edx,0x04(%esp)