PR libstdc++/87872 Avoids iterator transfer on self splice
Jonathan Wakely
jwakely@redhat.com
Tue Nov 6 18:16:00 GMT 2018
On 06/11/18 10:49 +0100, François Dumont wrote:
>Here is the patch submitted by John and now fully tested.
>
>Â Â Â PR libstdc++/87872
>Â Â Â * include/debug/safe_sequence.tcc
>Â Â Â (_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self.
>
>Is it fine to commit it now ?
OK, thanks.
>François
>
>diff --git a/libstdc++-v3/include/debug/safe_sequence.tcc b/libstdc++-v3/include/debug/safe_sequence.tcc
>index 12de48cf322..ce9a807e79f 100644
>--- a/libstdc++-v3/include/debug/safe_sequence.tcc
>+++ b/libstdc++-v3/include/debug/safe_sequence.tcc
>@@ -68,6 +68,9 @@ namespace __gnu_debug
> _Safe_sequence<_Sequence>::
> _M_transfer_from_if(_Safe_sequence& __from, _Predicate __pred)
> {
>+ if (this == std::__addressof(__from))
>+ return;
>+
> typedef typename _Sequence::iterator iterator;
> typedef typename _Sequence::const_iterator const_iterator;
>
More information about the Libstdc++
mailing list