http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45989
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |kkojima at rr dot | |iij4u.or.jp, | |sch...@linux-m68k.org --- Comment #3 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2010-12-22 15:47:33 UTC --- t025 to t031 XPASS also on sh4-unknown-linux-gnu (default) see http://gcc.gnu.org/ml/gcc-testresults/2010-12/msg01979.html ia64-suse-linux-gnu (default) see http://gcc.gnu.org/ml/gcc-testresults/2010-12/msg01903.html On powerpc-apple-darwin9 and -m32 only t026, t030, and t031 XPASS, see http://gcc.gnu.org/ml/gcc-testresults/2010-12/msg01959.html I have tested on powerpc-apple-darwin9 and x86_64-apple-darwin10 the following more general patch: --- /opt/gcc/_gcc_clean/gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c 2010-12-13 10:50:10.000000000 +0100 +++ /opt/gcc/gcc-4.6-work/gcc/testsuite/objc.dg/gnu-encoding/struct-layout-encoding-1_generate.c 2010-12-22 14:47:33.000000000 +0100 @@ -243,10 +243,16 @@ switchfiles (int fields) of bugs in libobjc and the objc front-end. 25 is because vectors are not encoded. The rest are because or zero sized arrays are encoded as pointers. */ - else if (filecnt >= 25) + else if (filecnt == 25 || (filecnt >= 27 && filecnt <= 29)) { fprintf (outfile, "\ -/* { dg-do run { xfail *-*-* } } */\n\ +/* { dg-do run { xfail { *86*-*-* || { powerpc*-apple-darwin* && ilp32 } } } } */\n\ +/* { dg-options \"-w -I%s -fgnu-runtime\" } */\n", srcdir); + } + else if (filecnt >= 30) + { + fprintf (outfile, "\ +/* { dg-do run { xfail *86*-*-* } } */\n\ /* { dg-options \"-w -I%s -fgnu-runtime\" } */\n", srcdir); } else It should work on all the platforms listed above, could you test it?