re PR libstdc++/62313 (Data race in debug iterators)
authorFrançois Dumont <fdumont@gcc.gnu.org>
Mon, 29 Sep 2014 21:22:17 +0000 (21:22 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Mon, 29 Sep 2014 21:22:17 +0000 (21:22 +0000)
commitebd4c354b39912dfa95b1288d28a658d671b2285
treecdd6cf88df941efb4a3211ab113e4194e3fc6b7c
parenta3052d316c4d43df242c2ef4748e8ac5d8cd8437
re PR libstdc++/62313 (Data race in debug iterators)

2014-09-29  François Dumont  <fdumont@gcc.gnu.org>

PR libstdc++/62313
* include/debug/safe_base.h
(_Safe_iterator_base(const _Safe_iterator_base&)): Delete declaration.
(_Safe_iterator_base& operator=(const _Safe_iterator_base&)): Likewise.
* include/debug/safe_iterator.h (_Safe_iterator<>): Move normal iterator
before _Safe_iterator_base in memory. Lock before modifying the iterator
in numerous places.
* include/debug/safe_local_iterator.h
(_Safe_local_iterator_base(const _Safe_local_iterator_base&)): Delete
declaration.
(_Safe_local_iterator_base& operator=(const _Safe_local_iterator_base&)):
Likewise.
* include/debug/safe_unordered_base.h (_Safe_local_iterator<>):  Move
normal iterator before _Safe_iterator_base in memory. Lock before
modifying the iterator in numerous places.
* include/debug/forward_list (_Safe_forward_list<>::_M_swap_aux): Adapt.
* include/debug/safe_sequence.tcc
(_Safe_sequence<>::_M_transfer_from_if): Adapt.

From-SVN: r215693
libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/forward_list
libstdc++-v3/include/debug/safe_base.h
libstdc++-v3/include/debug/safe_iterator.h
libstdc++-v3/include/debug/safe_local_iterator.h
libstdc++-v3/include/debug/safe_sequence.tcc
libstdc++-v3/include/debug/safe_unordered_base.h