aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Bytheway <jbytheway@gmail.com>2018-11-06 20:20:06 +0000
committerFrançois Dumont <fdumont@gcc.gnu.org>2018-11-06 20:20:06 +0000
commitcdc71993cf6d210bc7ff5b9c1ec099c25a8c5f48 (patch)
tree778ba30c5bcc95c9a698ade74fd7dd5cb48a4d5a
parent996bea89df18890e6dd0bdbbf5a7f1d4fd6852ad (diff)
downloadgcc-cdc71993cf6d210bc7ff5b9c1ec099c25a8c5f48.zip
gcc-cdc71993cf6d210bc7ff5b9c1ec099c25a8c5f48.tar.gz
gcc-cdc71993cf6d210bc7ff5b9c1ec099c25a8c5f48.tar.bz2
re PR libstdc++/87872 (debug list::splice should not call _M_transfer_from_if on self-splices)
2018-11-06 John Bytheway <jbytheway@gmail.com> PR libstdc++/87872 * include/debug/safe_sequence.tcc (_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self. From-SVN: r265851
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/debug/safe_sequence.tcc3
2 files changed, 9 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index b7126f8..fe28f52 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2018-11-06 John Bytheway <jbytheway@gmail.com>
+
+ PR libstdc++/87872
+ * include/debug/safe_sequence.tcc
+ (_Safe_sequence<>::_M_transfer_from_if): Skip transfer to self.
+
2018-10-31 Joseph Myers <joseph@codesourcery.com>
PR bootstrap/82856
diff --git a/libstdc++-v3/include/debug/safe_sequence.tcc b/libstdc++-v3/include/debug/safe_sequence.tcc
index 12de48c..ce9a807 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;