http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54407
--- Comment #10 from Jack Howarth <howarth at nitro dot med.uc.edu> 2012-10-14 21:12:20 UTC --- I think you need to use... // { dg-xfail-if "broken pthreads before darwin10" { *-*-darwin9* *-*-darwin10* } { "*" } { "" } } instead of dg-do-compile. From http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gccint/Test-Directives.html, note... If the directive includes the optional `{ xfail selector }' and the selector is met then the test is expected to fail. For dg-do run, execution is expected to fail but compilation is expected to pass. since you already are passing dg-do-run a target selector, an additional dg-xfail-if is required. This combination works here on x86_64-apple-darwin12.... Index: libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc =================================================================== --- libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc (revision 192440) +++ libstdc++-v3/testsuite/30_threads/condition_variable/54185.cc (working copy) @@ -1,4 +1,5 @@ -// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* powerpc-ibm-aix* } } +// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin1[1-9]* powerpc-ibm-aix* } } +// { dg-xfail-if "broken pthreads before darwin10" { *-*-darwin9* *-*-darwin10* } { "*" } { "" } } // { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* powerpc-ibm-aix* } } // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } }