OSDN Git Service

PR middle-end/51038
authoramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Nov 2011 20:38:33 +0000 (20:38 +0000)
committeramacleod <amacleod@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 10 Nov 2011 20:38:33 +0000 (20:38 +0000)
commit10b744a37ff1abbecf121987f694e0a704b77b95
tree4138d94b9a849ba000843310e148fa8a6d8d6c8a
parent5335e796aebf8ae6b08f8a8c664759c706e10653
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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181271 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/builtins.c
gcc/sync-builtins.def
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/atomic-flag.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/atomic-invalid.c
libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/atomic_base.h