On Tue, Jan 20, 2009 at 6:21 PM, Jack Howarth <howa...@bromo.med.uc.edu> wrote: > On Tue, Jan 20, 2009 at 05:50:35PM -0800, H.J. Lu wrote: >> On Tue, Jan 20, 2009 at 3:29 PM, Jack Howarth <howa...@bromo.med.uc.edu> >> wrote: >> > Currently i686-apple-darwin9 appears in very good shape for >> > gcc 4.4 with the exception of one new set of testsuite failures >> > related to the new stackalignment changes. These all share the >> > commmon feature of only failing with the -O3 -g compiler option >> > flags... >> > >> > 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/throw-1.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 >> > FAIL: g++.dg/torture/stackalign/throw-1.C -O3 -g execution test >> > >> > With -O3 alone, these test cases don't fail there execution tests. >> > Mike Stump looked at the assembly code from eh-alloca-1.C and said >> > he doesn't believe this is a bug in the Darwin assembler or linker >> > but rather in gcc itself. Does anyone familiar with stackalign >> > changes have access to Intel Darwin9 to take a look at this? These >> > failures are currently the last bit of PR37012. Thanks in advance >> > for any efforts to eliminate these. >> >> Are those assembly codes correct? If not, what are the problems? >> >> >> >> -- >> H.J. > > H.J., > I can't say if the assembly is correct. Certainly without -g, the > generated code always passes the execution test in each failing case > compiled at -O3. Interestingly for... > > g++-4 -fmessage-length=0 -O3 -g -mstackrealign -mpreferred-stack-boundary=5 > throw-1.C > > this test aborts whereas if I compile with... > > g++-4 -fmessage-length=0 -O3 -g -mstackrealign -mpreferred-stack-boundary=5 > -DDEBUG throw-1.C > > instead the code bus errors... > > Starting program: /Users/howarth/stackalign/a.out > Reading symbols for shared libraries +++. done > > Program received signal EXC_BAD_ACCESS, Could not access memory. > Reason: KERN_PROTECTION_FAILURE at address: 0x00000135 > 0x937d7457 in __vfprintf () > > The difference in the assembly between... > > g++-4 -fmessage-length=0 -O3 -mstackrealign -mpreferred-stack-boundary=5 > throw-1.C > > and > > g++-4 -fmessage-length=0 -O3 -g -mstackrealign -mpreferred-stack-boundary=5 > throw-1.C > > is... >
It looks like a Darwin specific bug. Someone who knows Darwin has to tell me where the problem is. H.J.