http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51038
--- Comment #2 from Andrew Macleod <amacleod at redhat dot com> 2011-11-10 20:38:46 UTC --- Author: amacleod Date: Thu Nov 10 20:38:33 2011 New Revision: 181271 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=181271 Log: PR middle-end/51038 libstdc++-v3 * include/bits/atomic_base.h (atomic_thread_fence): Call built-in. (atomic_signal_fence): Call built-in. (test_and_set, clear): Call new atomic built-ins. gcc * builtins.c (expand_builtin_atomic_clear): New. Expand atomic_clear. (expand_builtin_atomic_test_and_set): New. Expand atomic test_and_set. (expand_builtin): Add cases for test_and_set and clear. * sync-builtins.def (BUILT_IN_ATOMIC_TEST_AND_SET): New. (BUILT_IN_ATOMIC_CLEAR): New. testsuite * gcc.dg/atomic-invalid.c: Add test for invalid __atomic_clear models. * gcc.dg/atomic-flag.c: New. Test __atomic_test_and_set and __atomic_clear. Added: trunk/gcc/testsuite/gcc.dg/atomic-flag.c Modified: trunk/gcc/ChangeLog trunk/gcc/builtins.c trunk/gcc/sync-builtins.def trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/atomic-invalid.c trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/bits/atomic_base.h