Some targets like arm-eabi with newlib and default settings rely on
__sync_synchronize() to ensure synchronization.  Newlib does not
implement it by default, to make users aware they have to take special
care.

This makes a few tests fail to link.

This patch requires the missing thread-fence effective target in the
tests that need it, making them UNSUPPORTED instead of FAIL and
UNRESOLVED.

2023-09-10  Christophe Lyon  <christophe.l...@linaro.org>

        libstdc++-v3/
        * testsuite/20_util/to_address/debug.cc: Require thread-fence effective 
target.
        * testsuite/21_strings/basic_string/cons/char/self_move.cc: Likewise.
        * testsuite/21_strings/basic_string/debug/1_neg.cc: Likewise.
        * testsuite/21_strings/basic_string/debug/2_neg.cc: Likewise.
        * testsuite/21_strings/basic_string/debug/find1_neg.cc: Likewise.
        * testsuite/21_strings/basic_string/debug/find2_neg.cc: Likewise.
        * testsuite/21_strings/basic_string/hash/debug.cc: Likewise.
        * testsuite/21_strings/basic_string/requirements/citerators.cc: 
Likewise.
        * testsuite/21_strings/basic_string/requirements/exception/basic.cc: 
Likewise.
        * 
testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc:
        Likewise.
        * 
testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc:
        Likewise.
        * testsuite/21_strings/debug/shrink_to_fit.cc: Likewise.
        * testsuite/23_containers/array/debug/back1_neg.cc: Likewise.
        * testsuite/23_containers/array/debug/back2_neg.cc: Likewise.
        * testsuite/23_containers/array/debug/front1_neg.cc: Likewise.
        * testsuite/23_containers/array/debug/front2_neg.cc: Likewise.
        * testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc: 
Likewise.
        * testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc: 
Likewise.
        * testsuite/23_containers/deque/cons/self_move.cc: Likewise.
        * testsuite/23_containers/deque/debug/98466.cc: Likewise.
        * testsuite/23_containers/deque/debug/assign4_neg.cc: Likewise.
        * testsuite/23_containers/deque/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/deque/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/deque/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/deque/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/deque/debug/invalidation/3.cc: Likewise.
        * testsuite/23_containers/deque/debug/invalidation/4.cc: Likewise.
        * testsuite/23_containers/forward_list/cons/self_move.cc: Likewise.
        * testsuite/23_containers/forward_list/debug/construct4_neg.cc: 
Likewise.
        * testsuite/23_containers/forward_list/debug/move_assign_neg.cc: 
Likewise.
        * testsuite/23_containers/forward_list/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/list/cons/self_move.cc: Likewise.
        * testsuite/23_containers/list/debug/assign4_neg.cc: Likewise.
        * testsuite/23_containers/list/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/list/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/list/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/list/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/list/debug/invalidation/3.cc: Likewise.
        * testsuite/23_containers/list/debug/invalidation/4.cc: Likewise.
        * testsuite/23_containers/map/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/map/debug/construct5_neg.cc: Likewise.
        * testsuite/23_containers/map/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/map/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/map/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/map/debug/move_assign_neg.cc: Likewise.
        * testsuite/23_containers/map/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/map/modifiers/erase/end_neg.cc: Likewise.
        * testsuite/23_containers/map/modifiers/insert/16813.cc: Likewise.
        * testsuite/23_containers/multimap/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/multimap/debug/construct5_neg.cc: Likewise.
        * testsuite/23_containers/multimap/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/multimap/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/multimap/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/multimap/debug/move_assign_neg.cc: Likewise.
        * testsuite/23_containers/multimap/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/construct5_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/multiset/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/multiset/debug/move_assign_neg.cc: Likewise.
        * testsuite/23_containers/multiset/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/set/cons/self_move.cc: Likewise.
        * testsuite/23_containers/set/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/set/debug/construct5_neg.cc: Likewise.
        * testsuite/23_containers/set/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/set/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/set/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/set/debug/move_assign_neg.cc: Likewise.
        * testsuite/23_containers/set/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/span/back_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/cons_1_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/cons_2_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/first_2_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/first_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/front_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/index_op_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/last_2_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/last_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_2_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_3_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_4_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_5_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_6_assert_neg.cc: Likewise.
        * testsuite/23_containers/span/subspan_assert_neg.cc: Likewise.
        * testsuite/23_containers/unordered_map/debug/98466.cc: Likewise.
        * testsuite/23_containers/unordered_map/debug/construct4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_map/debug/construct5_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_map/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/unordered_map/debug/move_assign_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_map/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multimap/debug/move_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_multiset/debug/move_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_set/cons/self_move.cc: Likewise.
        * testsuite/23_containers/unordered_set/debug/construct4_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_set/debug/construct5_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_set/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/unordered_set/debug/move_assign_neg.cc: 
Likewise.
        * testsuite/23_containers/unordered_set/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/vector/cons/self_move.cc: Likewise.
        * testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc: 
Likewise.
        * testsuite/23_containers/vector/debug/assign4_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/construct4_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/insert4_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/insert6_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/insert7_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/invalidation/1.cc: Likewise.
        * testsuite/23_containers/vector/debug/invalidation/2.cc: Likewise.
        * testsuite/23_containers/vector/debug/invalidation/3.cc: Likewise.
        * testsuite/23_containers/vector/debug/invalidation/4.cc: Likewise.
        * testsuite/23_containers/vector/debug/move_assign_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/move_neg.cc: Likewise.
        * testsuite/23_containers/vector/debug/mutex_association.cc: Likewise.
        * testsuite/24_iterators/move_iterator/debug_neg.cc: Likewise.
        * testsuite/24_iterators/normal_iterator/debug_neg.cc: Likewise.
        * testsuite/24_iterators/range_operations/advance_debug_neg.cc: 
Likewise.
        * testsuite/24_iterators/reverse_iterator/debug_neg.cc: Likewise.
        * testsuite/25_algorithms/binary_search/partitioned.cc: Likewise.
        * testsuite/25_algorithms/copy/86658.cc: Likewise.
        * testsuite/25_algorithms/copy/debug/99402.cc: Likewise.
        * testsuite/25_algorithms/equal_range/partitioned.cc: Likewise.
        * testsuite/25_algorithms/for_each/for_each_n_debug.cc: Likewise.
        * testsuite/25_algorithms/lower_bound/partitioned.cc: Likewise.
        * testsuite/25_algorithms/sample/2.cc: Likewise.
        * testsuite/25_algorithms/upper_bound/partitioned.cc: Likewise.
        * testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-1_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-2_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-3_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-4_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-5_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-6_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-7_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask-8_neg.cc: Likewise.
        * testsuite/26_numerics/valarray/mask.cc: Likewise.
        * testsuite/29_atomics/atomic/compare_exchange_padding.cc: Likewise.
        * testsuite/29_atomics/atomic/cons/value_init.cc: Likewise.
        * testsuite/29_atomics/atomic_float/value_init.cc: Likewise.
        * testsuite/29_atomics/atomic_integral/cons/value_init.cc: Likewise.
        * testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc: Likewise.
        * testsuite/29_atomics/atomic_ref/generic.cc: Likewise.
        * testsuite/29_atomics/atomic_ref/integral.cc: Likewise.
        * testsuite/29_atomics/atomic_ref/pointer.cc: Likewise.
        * testsuite/experimental/net/timer/waitable/dest.cc: Likewise.
        * testsuite/experimental/net/timer/waitable/ops.cc: Likewise.
        * testsuite/experimental/polymorphic_allocator/construct_pair.cc: 
Likewise.
---
 libstdc++-v3/testsuite/20_util/to_address/debug.cc              | 1 +
 .../testsuite/21_strings/basic_string/cons/char/self_move.cc    | 1 +
 libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc   | 1 +
 libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc   | 1 +
 .../testsuite/21_strings/basic_string/debug/find1_neg.cc        | 1 +
 .../testsuite/21_strings/basic_string/debug/find2_neg.cc        | 1 +
 libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc    | 1 +
 .../21_strings/basic_string/requirements/citerators.cc          | 1 +
 .../21_strings/basic_string/requirements/exception/basic.cc     | 1 +
 .../requirements/exception/generation_prohibited.cc             | 1 +
 .../requirements/exception/propagation_consistent.cc            | 1 +
 libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc        | 1 +
 libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc   | 1 +
 libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc   | 1 +
 libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc  | 1 +
 libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc  | 1 +
 .../23_containers/array/debug/square_brackets_operator1_neg.cc  | 1 +
 .../23_containers/array/debug/square_brackets_operator2_neg.cc  | 1 +
 libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc    | 1 +
 libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc       | 1 +
 libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc | 1 +
 .../testsuite/23_containers/deque/debug/construct4_neg.cc       | 1 +
 libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc | 1 +
 .../testsuite/23_containers/deque/debug/invalidation/1.cc       | 2 ++
 .../testsuite/23_containers/deque/debug/invalidation/2.cc       | 2 ++
 .../testsuite/23_containers/deque/debug/invalidation/3.cc       | 2 ++
 .../testsuite/23_containers/deque/debug/invalidation/4.cc       | 2 ++
 .../testsuite/23_containers/forward_list/cons/self_move.cc      | 1 +
 .../23_containers/forward_list/debug/construct4_neg.cc          | 1 +
 .../23_containers/forward_list/debug/move_assign_neg.cc         | 1 +
 .../testsuite/23_containers/forward_list/debug/move_neg.cc      | 1 +
 libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc     | 1 +
 libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc  | 1 +
 .../testsuite/23_containers/list/debug/construct4_neg.cc        | 1 +
 libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc  | 1 +
 .../testsuite/23_containers/list/debug/invalidation/1.cc        | 2 ++
 .../testsuite/23_containers/list/debug/invalidation/2.cc        | 2 ++
 .../testsuite/23_containers/list/debug/invalidation/3.cc        | 2 ++
 .../testsuite/23_containers/list/debug/invalidation/4.cc        | 2 ++
 .../testsuite/23_containers/map/debug/construct4_neg.cc         | 1 +
 .../testsuite/23_containers/map/debug/construct5_neg.cc         | 1 +
 libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc   | 1 +
 .../testsuite/23_containers/map/debug/invalidation/1.cc         | 2 ++
 .../testsuite/23_containers/map/debug/invalidation/2.cc         | 2 ++
 .../testsuite/23_containers/map/debug/move_assign_neg.cc        | 1 +
 libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc      | 1 +
 .../testsuite/23_containers/map/modifiers/erase/end_neg.cc      | 1 +
 .../testsuite/23_containers/map/modifiers/insert/16813.cc       | 2 ++
 .../testsuite/23_containers/multimap/debug/construct4_neg.cc    | 1 +
 .../testsuite/23_containers/multimap/debug/construct5_neg.cc    | 1 +
 .../testsuite/23_containers/multimap/debug/insert4_neg.cc       | 1 +
 .../testsuite/23_containers/multimap/debug/invalidation/1.cc    | 2 ++
 .../testsuite/23_containers/multimap/debug/invalidation/2.cc    | 2 ++
 .../testsuite/23_containers/multimap/debug/move_assign_neg.cc   | 1 +
 libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc | 1 +
 .../testsuite/23_containers/multiset/debug/construct4_neg.cc    | 1 +
 .../testsuite/23_containers/multiset/debug/construct5_neg.cc    | 2 ++
 .../testsuite/23_containers/multiset/debug/insert4_neg.cc       | 1 +
 .../testsuite/23_containers/multiset/debug/invalidation/1.cc    | 2 ++
 .../testsuite/23_containers/multiset/debug/invalidation/2.cc    | 2 ++
 .../testsuite/23_containers/multiset/debug/move_assign_neg.cc   | 1 +
 libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc | 1 +
 libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc      | 1 +
 .../testsuite/23_containers/set/debug/construct4_neg.cc         | 1 +
 .../testsuite/23_containers/set/debug/construct5_neg.cc         | 1 +
 libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc   | 1 +
 .../testsuite/23_containers/set/debug/invalidation/1.cc         | 2 ++
 .../testsuite/23_containers/set/debug/invalidation/2.cc         | 2 ++
 .../testsuite/23_containers/set/debug/move_assign_neg.cc        | 1 +
 libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc      | 1 +
 libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc    | 1 +
 libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc  | 1 +
 libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc  | 1 +
 libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc | 1 +
 libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc   | 1 +
 libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc   | 1 +
 .../testsuite/23_containers/span/index_op_assert_neg.cc         | 1 +
 libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc  | 1 +
 libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc    | 1 +
 .../testsuite/23_containers/span/subspan_2_assert_neg.cc        | 1 +
 .../testsuite/23_containers/span/subspan_3_assert_neg.cc        | 1 +
 .../testsuite/23_containers/span/subspan_4_assert_neg.cc        | 1 +
 .../testsuite/23_containers/span/subspan_5_assert_neg.cc        | 1 +
 .../testsuite/23_containers/span/subspan_6_assert_neg.cc        | 1 +
 libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc | 1 +
 .../testsuite/23_containers/unordered_map/debug/98466.cc        | 1 +
 .../23_containers/unordered_map/debug/construct4_neg.cc         | 1 +
 .../23_containers/unordered_map/debug/construct5_neg.cc         | 1 +
 .../testsuite/23_containers/unordered_map/debug/insert4_neg.cc  | 1 +
 .../23_containers/unordered_map/debug/move_assign_neg.cc        | 1 +
 .../testsuite/23_containers/unordered_map/debug/move_neg.cc     | 1 +
 .../23_containers/unordered_multimap/debug/construct4_neg.cc    | 1 +
 .../23_containers/unordered_multimap/debug/construct5_neg.cc    | 1 +
 .../23_containers/unordered_multimap/debug/insert4_neg.cc       | 1 +
 .../23_containers/unordered_multimap/debug/move_assign_neg.cc   | 1 +
 .../23_containers/unordered_multimap/debug/move_neg.cc          | 1 +
 .../23_containers/unordered_multiset/debug/construct4_neg.cc    | 1 +
 .../23_containers/unordered_multiset/debug/construct5_neg.cc    | 1 +
 .../23_containers/unordered_multiset/debug/insert4_neg.cc       | 1 +
 .../23_containers/unordered_multiset/debug/move_assign_neg.cc   | 1 +
 .../23_containers/unordered_multiset/debug/move_neg.cc          | 1 +
 .../testsuite/23_containers/unordered_set/cons/self_move.cc     | 1 +
 .../23_containers/unordered_set/debug/construct4_neg.cc         | 1 +
 .../23_containers/unordered_set/debug/construct5_neg.cc         | 1 +
 .../testsuite/23_containers/unordered_set/debug/insert4_neg.cc  | 1 +
 .../23_containers/unordered_set/debug/move_assign_neg.cc        | 1 +
 .../testsuite/23_containers/unordered_set/debug/move_neg.cc     | 1 +
 libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc   | 1 +
 .../23_containers/vector/debug/assign4_backtrace_neg.cc         | 1 +
 .../testsuite/23_containers/vector/debug/assign4_neg.cc         | 1 +
 .../testsuite/23_containers/vector/debug/construct4_neg.cc      | 1 +
 .../testsuite/23_containers/vector/debug/insert4_neg.cc         | 1 +
 .../testsuite/23_containers/vector/debug/insert6_neg.cc         | 1 +
 .../testsuite/23_containers/vector/debug/insert7_neg.cc         | 1 +
 .../testsuite/23_containers/vector/debug/invalidation/1.cc      | 1 +
 .../testsuite/23_containers/vector/debug/invalidation/2.cc      | 1 +
 .../testsuite/23_containers/vector/debug/invalidation/3.cc      | 1 +
 .../testsuite/23_containers/vector/debug/invalidation/4.cc      | 1 +
 .../testsuite/23_containers/vector/debug/move_assign_neg.cc     | 1 +
 libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc   | 1 +
 .../testsuite/23_containers/vector/debug/mutex_association.cc   | 1 +
 libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc  | 2 ++
 .../testsuite/24_iterators/normal_iterator/debug_neg.cc         | 1 +
 .../24_iterators/range_operations/advance_debug_neg.cc          | 1 +
 .../testsuite/24_iterators/reverse_iterator/debug_neg.cc        | 1 +
 .../testsuite/25_algorithms/binary_search/partitioned.cc        | 1 +
 libstdc++-v3/testsuite/25_algorithms/copy/86658.cc              | 1 +
 libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc        | 1 +
 libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc | 1 +
 .../testsuite/25_algorithms/for_each/for_each_n_debug.cc        | 1 +
 libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc | 1 +
 libstdc++-v3/testsuite/25_algorithms/sample/2.cc                | 1 +
 libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc | 1 +
 .../testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-4_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-5_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-6_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc       | 1 +
 libstdc++-v3/testsuite/26_numerics/valarray/mask.cc             | 1 +
 .../testsuite/29_atomics/atomic/compare_exchange_padding.cc     | 1 +
 libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc     | 1 +
 libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc    | 1 +
 .../testsuite/29_atomics/atomic_integral/cons/value_init.cc     | 1 +
 .../testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc | 1 +
 libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc         | 1 +
 libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc        | 1 +
 libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc         | 1 +
 libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc  | 1 +
 libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc   | 1 +
 .../experimental/polymorphic_allocator/construct_pair.cc        | 1 +
 154 files changed, 173 insertions(+)

diff --git a/libstdc++-v3/testsuite/20_util/to_address/debug.cc 
b/libstdc++-v3/testsuite/20_util/to_address/debug.cc
index d6eba8b5d10..558d878b3ec 100644
--- a/libstdc++-v3/testsuite/20_util/to_address/debug.cc
+++ b/libstdc++-v3/testsuite/20_util/to_address/debug.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
index def9a7fce20..3f9836fdf37 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/cons/char/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <string>
 #include <debug/string>
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
index cdf9301ad3c..03382fe1766 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/debug/1_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #define _GLIBCXX_DEBUG_PEDANTIC
 
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
index baa7954b474..822eeca6d92 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/debug/2_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #define _GLIBCXX_DEBUG_PEDANTIC
 
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
index 9a41de4dcbb..db885d7eeb0 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/debug/find1_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #define _GLIBCXX_DEBUG_PEDANTIC
 
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
index 9a4d30f467c..60ea80be1bf 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/debug/find2_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #define _GLIBCXX_DEBUG_PEDANTIC
 
diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
index 706da53db81..306524776b4 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/hash/debug.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++17 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/string>
 #include <memory_resource>
diff --git 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
index 30aeda98e88..c150a5197c6 100644
--- a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
+++ b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/citerators.cc
@@ -1,5 +1,6 @@
 // { dg-do run { target c++11 } }
 // { dg-require-string-conversions "" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 // Copyright (C) 2009-2023 Free Software Foundation, Inc.
 //
diff --git 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
index 0324ae9d45f..ed5e723eb36 100644
--- 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
+++ 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/basic.cc
@@ -1,5 +1,6 @@
 // { dg-do run { target c++11 } }
 // { dg-require-cstdint "" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 // 2009-11-10  Benjamin Kosnik  <benja...@redhat.com>
 
diff --git 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
index 209542f57e4..0db93e3f1a3 100644
--- 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
+++ 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/generation_prohibited.cc
@@ -1,5 +1,6 @@
 // { dg-do run { target c++11 } }
 // { dg-require-cstdint "" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 // 2009-09-14  Benjamin Kosnik  <benja...@redhat.com>
 
diff --git 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
index 805aecdab19..eb0a885b431 100644
--- 
a/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
+++ 
b/libstdc++-v3/testsuite/21_strings/basic_string/requirements/exception/propagation_consistent.cc
@@ -1,5 +1,6 @@
 // { dg-do run { target c++11 } }
 // { dg-require-cstdint "" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 // 2009-09-14  Benjamin Kosnik  <benja...@redhat.com>
 
diff --git a/libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc 
b/libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
index c5efbb6cfe2..46ff0595f2d 100644
--- a/libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
+++ b/libstdc++-v3/testsuite/21_strings/debug/shrink_to_fit.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/string>
 
diff --git a/libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc 
b/libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
index f1bd47cf9b1..ed24c0c14c8 100644
--- a/libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/debug/back1_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git a/libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc 
b/libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
index ce28c2c13f8..d3ba88c8e06 100644
--- a/libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/debug/back2_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git a/libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc 
b/libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
index 5da09c6c71a..b6886066f2c 100644
--- a/libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/debug/front1_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git a/libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc 
b/libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
index baa46274aad..f59905a4f58 100644
--- a/libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/array/debug/front2_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
index fb3aab5de88..96d223c71b4 100644
--- 
a/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator1_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
index f240dc66ca4..ec1a4572e41 100644
--- 
a/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/array/debug/square_brackets_operator2_neg.cc
@@ -17,6 +17,7 @@
 //
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++14 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <array>
 
diff --git a/libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
index bd899b01b8a..fd3bc79a4a6 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <deque>
 #include <debug/deque>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
index 9650b1e938d..8eb05c0a6e5 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/98466.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
index fae959e9730..a6386e7e517 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/assign4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
index 4be6516246b..5faef64642f 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
index df6bcb7eb48..3392558e1d1 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
index 33fa802c288..1f2f616c74e 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
index fbc2c81fd12..23e731529c4 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
index d650f0f7637..56e82b68b73 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/3.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc 
b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
index 9097c86e589..476b01ea2ae 100644
--- a/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
+++ b/libstdc++-v3/testsuite/23_containers/deque/debug/invalidation/4.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/deque>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
index 8638223b65a..d90222cfda8 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <forward_list>
 #include <debug/forward_list>
diff --git 
a/libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
index 28fe590d6cd..e2dceb05559 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/forward_list>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
index a8328d93d73..f3b21889dfa 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/forward_list>
 #include <testsuite_allocator.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
index 4f67bc0ab9a..d26857db461 100644
--- a/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/forward_list/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/forward_list>
 
diff --git a/libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
index 10edff1c5a8..3aa1f66e7e3 100644
--- a/libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <list>
 #include <debug/list>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
index 8ef90cb9c6d..1791f00b2fe 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/assign4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
index 8458d316a41..48b3c65e257 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
index a1b29650dda..99d5f5076fa 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
index 4b43e10aebe..1bcee8ed8b7 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
index bb9beaea316..ff77c28afb6 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
index 9b948640f77..010629cf319 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/3.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc 
b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
index 0125095a2ba..11038b3977a 100644
--- a/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
+++ b/libstdc++-v3/testsuite/23_containers/list/debug/invalidation/4.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/list>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
index f14a874123a..125319f2f09 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
index db9f83a666b..402218f185e 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
index 2f7517959a1..bb1e4d754c7 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
index 865c8815c20..510477e4576 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
index 7bf254ce0eb..4dbcb70b202 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
index 9267b644f71..2cbbbf17900 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
index daabfea1c3b..4ee9977a3ff 100644
--- a/libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc 
b/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
index bf38a677756..53cafa69c39 100644
--- a/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/modifiers/erase/end_neg.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <map>
 
diff --git a/libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc 
b/libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
index 7a5b073b786..88b59f97030 100644
--- a/libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
+++ b/libstdc++-v3/testsuite/23_containers/map/modifiers/insert/16813.cc
@@ -14,6 +14,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
index 765f5b6930a..936efbb298e 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
index 90d565824a5..17a0eee5357 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
index 2a3fa39bc83..a96dfb4445e 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
index 0404cdb4129..61d1f25fa39 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <iterator>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
index 801411d120e..4764abaa223 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <iterator>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
index 31b66f1f005..8367acbd5a8 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 #include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
index 834bf1fb162..d86df02e6eb 100644
--- a/libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multimap/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
index 0cab07bbfd2..9c40e116d9a 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
index ab8f03558f1..ab5f060bb29 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/construct5_neg.cc
@@ -16,6 +16,8 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
index e3bd3a6325f..fa7dc9c7405 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
index 190fa097db0..e7c8b7ef9ec 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <iterator>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
index 18d78e95926..0f230d88e93 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <iterator>
diff --git 
a/libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
index 94e0d86ee7f..1c129620ae1 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
index 48f5efb1790..5e00de66445 100644
--- a/libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/multiset/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 
diff --git a/libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
index 8bc633a3c6e..33952a985ce 100644
--- a/libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <set>
 #include <debug/set>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
index d4e26b6deb2..e29d7b4fb22 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
index 924067babf3..e32ea6a91a5 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
index 2a0f08123d1..f0620ed7336 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
index b5abfcec4c8..6b7ff9554d6 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/1.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
index 18b37ed7f5b..0843ee2657a 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/invalidation/2.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
index b3ecb07d9a9..ed0910e6ca3 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 #include <testsuite_allocator.h>
diff --git a/libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
index e1015a0c2d0..64adf2238f1 100644
--- a/libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/set/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/set>
 
diff --git a/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
index 2b4dee6df9a..d168d05b67e 100644
--- a/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/back_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
index 2f555125453..e420460cd7b 100644
--- a/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/cons_1_assert_neg.cc
@@ -1,6 +1,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_DEBUG
 #define _GLIBCXX_DEBUG
diff --git a/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
index efef0e608ba..75b2537c306 100644
--- a/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/cons_2_assert_neg.cc
@@ -1,6 +1,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_DEBUG
 #define _GLIBCXX_DEBUG
diff --git a/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
index 93cd095495a..59945017f47 100644
--- a/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/first_2_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
index 4ff56bf65cf..53f1712b89f 100644
--- a/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/first_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
index 2d4320d0fd9..f2b3e6d6627 100644
--- a/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/front_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
index b2633cbfaab..338708377bd 100644
--- a/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/index_op_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
index 906896911c0..5f12ee77d71 100644
--- a/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/last_2_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
index 59cd44acc3c..7185be6f517 100644
--- a/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/last_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
index 488b5606993..1a3749360be 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_2_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
index 8324edfc49a..d2ef7be332a 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_3_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
index b1dbfe6902e..d1e13cad3d0 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_4_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
index 2102fd02cce..378a243685a 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_5_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
index c003561032c..81201400408 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_6_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc 
b/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
index c46b78fe8bc..2ec08e9c949 100644
--- a/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/span/subspan_assert_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #undef _GLIBCXX_ASSERTIONS
 #define _GLIBCXX_ASSERTIONS
diff --git a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
index b3b24c36345..c2549e5f3ef 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/98466.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
index 5bb9b192b05..e2dec8e1bef 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
index d25ef525f6e..242e469fa3f 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
index e0096a5ab96..7b059929c6c 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
index 28f4d1e3a81..fe8a57b60c8 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <testsuite_allocator.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
index fafe8d2bcb1..1d9b029a011 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_map/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
index 3dcfe9d698e..d4d97859384 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
index 41491aaa5b7..f4306b62f4f 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
index 15210616a18..298611b63b2 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
index 35b06966951..911281991bc 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 #include <testsuite_allocator.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
index a8460e2bdf2..756f98e7f86 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multimap/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_map>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
index 73b30cbf055..af9950064da 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
index ba74892499d..0ee2aaaadd5 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
index 4ddc955848b..e5e9433d88f 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
index 2a3bb04242d..09e4f26e740 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <testsuite_allocator.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
index fe49807bbb8..c5f853de742 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_multiset/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
index 530a544457a..b460fa5dec6 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <unordered_set>
 #include <debug/unordered_set>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
index 70389b9e48a..24693ecca82 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
index f2e80bfb040..960215ada43 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/construct5_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
index 3184b109b25..3f3e54b994e 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
index 85baa06e133..cebe482dd94 100644
--- 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
+++ 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 #include <testsuite_allocator.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
index 022e0e080d1..b466cb88e2a 100644
--- a/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/unordered_set/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/unordered_set>
 
diff --git a/libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc 
b/libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
index 51393fa9c95..0c129905f6b 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/cons/self_move.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <vector>
 #include <debug/vector>
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
index 520788d5cb7..b775c184e60 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_backtrace_neg.cc
@@ -1,6 +1,7 @@
 // { dg-do run { xfail *-*-* } }
 // { dg-options "-D_GLIBCXX_DEBUG_BACKTRACE -lstdc++_libbacktrace" }
 // { dg-require-effective-target stacktrace }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
index 9aa48b60549..ac8258e14df 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/assign4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <debug/checks.h>
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
index bea6713c9ca..78fc85ed7ca 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/construct4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
index 39bcc2484c4..af990d9b3b1 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/insert4_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <debug/checks.h>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
index e3e4f69d9c4..f5fa8091647 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/insert6_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <vector>
 #include <debug/vector>
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
index b1da7a48ff3..e50dccaf9ff 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/insert7_neg.cc
@@ -18,6 +18,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <memory>
 #include <iterator>
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
index c21b7febd4b..1f32c740546 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/1.cc
@@ -19,6 +19,7 @@
 
 // We need to be pedantic about reallocations for this testcase to be correct.
 // { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #ifndef _GLIBCXX_DEBUG_PEDANTIC
 #  define _GLIBCXX_DEBUG_PEDANTIC 1
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
index 72c14c888d1..278bc8405b0 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/2.cc
@@ -19,6 +19,7 @@
 
 // We need to be pedantic about reallocations for this testcase to be correct.
 // { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #ifndef _GLIBCXX_DEBUG_PEDANTIC
 #  define _GLIBCXX_DEBUG_PEDANTIC 1
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
index fcc7f40cdfb..1727deb2330 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/3.cc
@@ -19,6 +19,7 @@
 
 // We need to be pedantic about reallocations for this testcase to be correct.
 // { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #ifndef _GLIBCXX_DEBUG_PEDANTIC
 #  define _GLIBCXX_DEBUG_PEDANTIC 1
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
index b30a0058f0b..8736aa7cee1 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/invalidation/4.cc
@@ -19,6 +19,7 @@
 
 // We need to be pedantic about reallocations for this testcase to be correct.
 // { dg-options "-D_GLIBCXX_DEBUG_PEDANTIC" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #ifndef _GLIBCXX_DEBUG_PEDANTIC
 #  define _GLIBCXX_DEBUG_PEDANTIC 1
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
index 58e93ddafb2..18f8ace41b2 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/move_assign_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 //
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 
diff --git a/libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
index 1db769c5208..c263c90ee44 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/move_neg.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 
diff --git 
a/libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc 
b/libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
index b430f71361f..d927c412b76 100644
--- a/libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
+++ b/libstdc++-v3/testsuite/23_containers/vector/debug/mutex_association.cc
@@ -15,6 +15,7 @@
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
 //
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <set>
 #include <debug/vector>
diff --git a/libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc 
b/libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
index 09cb0784a90..394ee3756bc 100644
--- a/libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/move_iterator/debug_neg.cc
@@ -16,6 +16,8 @@
 // You should have received a copy of the GNU General Public License along
 // with this library; see the file COPYING3.  If not see
 // <http://www.gnu.org/licenses/>.
+//
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 #include <iterator>
diff --git a/libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc 
b/libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
index 62bbb7cf9d9..d2a4661b63a 100644
--- a/libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/normal_iterator/debug_neg.cc
@@ -18,6 +18,7 @@
 // Requires C++11 because we check for correct output of
 // __gnu_cxx::__normal_iterator which is improved in this mode.
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 
diff --git 
a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc 
b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
index 4d363c41f7c..a0e5dc3ef0e 100644
--- a/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/range_operations/advance_debug_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a -D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
 // { dg-require-effective-target c++2a }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <iterator>
 #include <testsuite_iterators.h>
diff --git a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc 
b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
index c11625190d1..19ec7ce2dd3 100644
--- a/libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
+++ b/libstdc++-v3/testsuite/24_iterators/reverse_iterator/debug_neg.cc
@@ -18,6 +18,7 @@
 // Requires C++11 because we check for correct output of
 // std::reverse_iterator which is improved only in this mode.
 // { dg-do run { target c++11 xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <debug/vector>
 
diff --git a/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc 
b/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
index dd3d46b1cf8..6bdb787f2a9 100644
--- a/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/binary_search/partitioned.cc
@@ -18,6 +18,7 @@
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run { target c++11 } }
 // { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PARALLEL" } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/86658.cc 
b/libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
index e6b19c0a12a..3d4b15b5042 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/86658.cc
@@ -18,6 +18,7 @@
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run }
 // { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PARALLEL" } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc 
b/libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
index 4ffa02be7d3..b46b9a75438 100644
--- a/libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/copy/debug/99402.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <set>
diff --git a/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc 
b/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
index 0a879edd53c..9434f9f4d38 100644
--- a/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/equal_range/partitioned.cc
@@ -18,6 +18,7 @@
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run { target c++11 } }
 // { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PARALLEL" } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc 
b/libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
index 1ddeae4efcc..15e3ee62b97 100644
--- a/libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/for_each/for_each_n_debug.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++17 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <debug/vector>
diff --git a/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc 
b/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
index 557c1fada38..e5d5373780e 100644
--- a/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/lower_bound/partitioned.cc
@@ -18,6 +18,7 @@
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run { target c++11 } }
 // { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PARALLEL" } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <functional>
diff --git a/libstdc++-v3/testsuite/25_algorithms/sample/2.cc 
b/libstdc++-v3/testsuite/25_algorithms/sample/2.cc
index 2d0f30a110b..c766bd93fc3 100644
--- a/libstdc++-v3/testsuite/25_algorithms/sample/2.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/sample/2.cc
@@ -17,6 +17,7 @@
 
 // { dg-do run { target c++17 } }
 // { dg-require-cstdint "" }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #ifndef _GLIBCXX_ASSERTIONS
 // Make std::uniform_int_distribution check its parameters
diff --git a/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc 
b/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
index 6d4f0ef8a90..0a1e7e06403 100644
--- a/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
+++ b/libstdc++-v3/testsuite/25_algorithms/upper_bound/partitioned.cc
@@ -18,6 +18,7 @@
 // { dg-options "-D_GLIBCXX_DEBUG" }
 // { dg-do run { target c++11 } }
 // { dg-skip-if "" { *-*-* } { "-D_GLIBCXX_PARALLEL" } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <algorithm>
 #include <functional>
diff --git a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
index 67aa736ac8e..eef53493ccd 100644
--- a/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/bit/bit.pow.two/bit_ceil_neg.cc
@@ -18,6 +18,7 @@
 // { dg-options "-std=gnu++2a -D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { target c++2a } }
 // { dg-xfail-run-if "__glibcxx_assert in bit_ceil should fail" { *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <bit>
 #include <limits>
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
index 7ef11736d96..01be43f187a 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-1_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
index f380dba17a9..882d99f1345 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-2_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
index 0b9e6fb366d..9e87bf48300 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-3_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-4_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-4_neg.cc
index b996967f4ce..a01dda2fb3e 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-4_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-4_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-5_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-5_neg.cc
index 8e708903b00..f513744de9d 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-5_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-5_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-6_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-6_neg.cc
index cded68c45b4..f4954e5d171 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-6_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-6_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
index 246977b8a8f..1858e594613 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-7_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
index 70f9ea25318..0d28c800540 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask-8_neg.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run { xfail *-*-* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 
diff --git a/libstdc++-v3/testsuite/26_numerics/valarray/mask.cc 
b/libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
index cb18701033e..0312bbe9a6c 100644
--- a/libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
+++ b/libstdc++-v3/testsuite/26_numerics/valarray/mask.cc
@@ -1,5 +1,6 @@
 // { dg-options "-D_GLIBCXX_ASSERTIONS" }
 // { dg-do run }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <valarray>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
index c4ab876db2a..2e7ff0307bc 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/compare_exchange_padding.cc
@@ -1,5 +1,6 @@
 // { dg-options "-std=gnu++20" }
 // { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
index 47d5a5d5b28..b8019486ccf 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic/cons/value_init.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 
 #include <atomic>
 
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
index 1cd1efb5422..6e89f2fc2a8 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_float/value_init.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git 
a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
index 96615a7d09f..2f6a48d36d8 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_integral/cons/value_init.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 
 #include <atomic>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
index 0dab8a23e10..8469ebf8a14 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/compare_exchange_padding.cc
@@ -1,5 +1,6 @@
 // { dg-options "-std=gnu++20" }
 // { dg-do run { target c++20 } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
index 14f417d1739..adae07f8754 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
index e03ca921eb9..a98adb7fbba 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc 
b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
index 8cd0e124986..b9c7d844b8c 100644
--- a/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
+++ b/libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
@@ -17,6 +17,7 @@
 
 // { dg-options "-std=gnu++2a" }
 // { dg-do run { target c++2a } }
+// { dg-require-thread-fence "" }
 // { dg-add-options libatomic }
 
 #include <atomic>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc 
b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
index cb818708aef..372ed6e0c00 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/dest.cc
@@ -18,6 +18,7 @@
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
 // { dg-xfail-if "poll not available" { *-*-rtems* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc 
b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
index ae51979c3b4..8383e0be6a4 100644
--- a/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
+++ b/libstdc++-v3/testsuite/experimental/net/timer/waitable/ops.cc
@@ -18,6 +18,7 @@
 // { dg-do run { target c++14 } }
 // { dg-add-options libatomic }
 // { dg-xfail-if "poll not available" { *-*-rtems* } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <experimental/timer>
 #include <testsuite_hooks.h>
diff --git 
a/libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc 
b/libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
index 960c1d253b5..42de45619a8 100644
--- 
a/libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
+++ 
b/libstdc++-v3/testsuite/experimental/polymorphic_allocator/construct_pair.cc
@@ -16,6 +16,7 @@
 // <http://www.gnu.org/licenses/>.
 
 // { dg-do run { target c++14 } }
+// { dg-require-thread-fence "" } // needed by 
__gnu_debug::_Safe_sequence_base::_M_detach_all()
 
 #include <experimental/memory_resource>
 #include <utility>
-- 
2.34.1

Reply via email to