summaryrefslogtreecommitdiff
path: root/debian/patches/pr92267.diff
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/pr92267.diff')
-rw-r--r--debian/patches/pr92267.diff55
1 files changed, 55 insertions, 0 deletions
diff --git a/debian/patches/pr92267.diff b/debian/patches/pr92267.diff
new file mode 100644
index 0000000..ba05803
--- /dev/null
+++ b/debian/patches/pr92267.diff
@@ -0,0 +1,55 @@
+# DP: Fix PR libstdc++/92267, taken from the trunk.
+
+libstdc++-v3/
+
+2019-10-29 Jonathan Wakely <jwakely@redhat.com>
+
+ PR libstdc++/92267
+ * include/bits/stl_deque.h (_Deque_iterator(const _Deque_iterator&)):
+ Do not define as defaulted.
+ * testsuite/23_containers/deque/types/92267.cc: New test.
+
+--- a/src/libstdc++-v3/include/bits/stl_deque.h
++++ b/src/libstdc++-v3/include/bits/stl_deque.h
+@@ -164,7 +164,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
+ : _M_cur(__x._M_cur), _M_first(__x._M_first),
+ _M_last(__x._M_last), _M_node(__x._M_node) { }
+
+- _Deque_iterator(const _Deque_iterator&) = default;
++ _Deque_iterator(const _Deque_iterator& __x) noexcept
++ : _M_cur(__x._M_cur), _M_first(__x._M_first),
++ _M_last(__x._M_last), _M_node(__x._M_node) { }
++
+ _Deque_iterator& operator=(const _Deque_iterator&) = default;
+ #endif
+
+--- /dev/null
++++ b/src/libstdc++-v3/testsuite/23_containers/deque/types/92267.cc
+@@ -0,0 +1,27 @@
++// Copyright (C) 2019 Free Software Foundation, Inc.
++//
++// This file is part of the GNU ISO C++ Library. This library is free
++// software; you can redistribute it and/or modify it under the
++// terms of the GNU General Public License as published by the
++// Free Software Foundation; either version 3, or (at your option)
++// any later version.
++
++// This library is distributed in the hope that it will be useful,
++// but WITHOUT ANY WARRANTY; without even the implied warranty of
++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
++// GNU General Public License for more details.
++
++// 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-do compile { target c++11 } }
++
++#include <deque>
++
++using std::deque;
++using std::is_trivially_copy_constructible;
++
++// PR libstdc++/92267
++static_assert(!is_trivially_copy_constructible<deque<int>::iterator>::value);
++static_assert(!is_trivially_copy_constructible<deque<int>::const_iterator>::value);