gcc/libstdc++-v3/include/bits
Ramana Radhakrishnan 57e6d9be77 Use atomics in guard.cc.
This provides proper definitions for _GLIBCXX_READ_MEM_BARRIER and
_GLIBCXX_WRITE_MEM_BARRIER, rewrites the guards in terms of proper
atomic extensions and removes internal uses of
_GLIBCXX_READ_MEM_BARRIER and _GLIBCXX_WRITE_MEM_BARRIER and replaces
them with equivalent atomics.

2015-06-12  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/66200
	PR c++/66192
	* * config/cpu/generic/atomic_word.h (_GLIBCXX_READ_MEM_BARRIER): Define
        (_GLIBCXX_WRITE_MEM_BARRIER): Likewise
        * include/bits/shared_ptr_base.h: Use ACQ_REL barrier.
        * include/ext/atomicity.h: Likewise.
        * include/tr1/shared_ptr.h: Likewise.
        * libsupc++/guard.cc (__test_and_acquire): Rewrite with atomics.
        Update comment.
        (__set_and_release): Likewise.
        * testsuite/20_util/shared_ptr/cons/43820_neg.cc (test01): Adjust for
	line numbers.
        * testsuite/20_util/shared_ptr/cons/void_neg.cc: Likewise.
        * testsuite/tr1/2_general_utilities/shared_ptr/cons/43820_neg.cc:
	Likewise.

From-SVN: r224411
2015-06-12 09:49:41 +00:00
..
algorithmfwd.h
alloc_traits.h
allocated_ptr.h
allocator.h
atomic_base.h
atomic_futex.h
basic_ios.h
basic_ios.tcc
basic_string.h
basic_string.tcc
boost_concept_check.h
c++0x_warning.h
c++14_warning.h
c++config
char_traits.h
codecvt.h
concept_check.h
cpp_type_traits.h
deque.tcc
enable_special_members.h
forward_list.h
forward_list.tcc
fstream.tcc
functexcept.h
functional_hash.h
gslice_array.h
gslice.h
hashtable_policy.h
hashtable.h
indirect_array.h
ios_base.h
istream.tcc
list.tcc
locale_classes.h
locale_classes.tcc
locale_conv.h
locale_facets_nonio.h
locale_facets_nonio.tcc
locale_facets.h
locale_facets.tcc
localefwd.h
mask_array.h
memoryfwd.h
move.h
ostream_insert.h
ostream.tcc
parse_numbers.h
postypes.h
predefined_ops.h
ptr_traits.h
quoted_string.h
random.h
random.tcc
range_access.h
regex_automaton.h
regex_automaton.tcc
regex_compiler.h
regex_compiler.tcc
regex_constants.h
regex_error.h
regex_executor.h
regex_executor.tcc
regex_scanner.h
regex_scanner.tcc
regex.h
regex.tcc
shared_ptr_atomic.h
shared_ptr_base.h
shared_ptr.h
slice_array.h
sstream.tcc
stl_algo.h
stl_algobase.h
stl_bvector.h
stl_construct.h
stl_deque.h
stl_function.h
stl_heap.h
stl_iterator_base_funcs.h
stl_iterator_base_types.h
stl_iterator.h
stl_list.h
stl_map.h
stl_multimap.h
stl_multiset.h
stl_numeric.h
stl_pair.h
stl_queue.h
stl_raw_storage_iter.h
stl_relops.h
stl_set.h
stl_stack.h
stl_tempbuf.h
stl_tree.h
stl_uninitialized.h
stl_vector.h
stream_iterator.h
streambuf_iterator.h
streambuf.tcc
stringfwd.h
unique_ptr.h
unordered_map.h
unordered_set.h
uses_allocator.h
valarray_after.h
valarray_array.h
valarray_array.tcc
valarray_before.h
vector.tcc