aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Glisse <marc.glisse@inria.fr>2018-10-02 16:59:25 +0200
committerMarc Glisse <glisse@gcc.gnu.org>2018-10-02 14:59:25 +0000
commit86920074bfc4f6319edce71b7a11e49417599f0c (patch)
tree8063e90e46f33bbaa835f540fb31da40c4465b2a
parent057cf66ca3d290e0f68f66eba0e43379cb77f870 (diff)
downloadgcc-86920074bfc4f6319edce71b7a11e49417599f0c.zip
gcc-86920074bfc4f6319edce71b7a11e49417599f0c.tar.gz
gcc-86920074bfc4f6319edce71b7a11e49417599f0c.tar.bz2
vector<bool> _M_start and 0 offset
2018-10-02 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/87258 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()): Rebuild _M_start with an explicit 0 offset. From-SVN: r264791
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 388ae9d..30ff00a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2018-10-02 Marc Glisse <marc.glisse@inria.fr>
+
+ PR libstdc++/87258
+ * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()):
+ Rebuild _M_start with an explicit 0 offset.
+
2018-10-02 Jonathan Wakely <jwakely@redhat.com>
* include/std/variant (__gen_vtable_impl::__visit_invoke): Call __get
diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h
index 4527ce7..19c1683 100644
--- a/libstdc++-v3/include/bits/stl_bvector.h
+++ b/libstdc++-v3/include/bits/stl_bvector.h
@@ -809,11 +809,11 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
iterator
begin() _GLIBCXX_NOEXCEPT
- { return this->_M_impl._M_start; }
+ { return iterator(this->_M_impl._M_start._M_p, 0); }
const_iterator
begin() const _GLIBCXX_NOEXCEPT
- { return this->_M_impl._M_start; }
+ { return const_iterator(this->_M_impl._M_start._M_p, 0); }
iterator
end() _GLIBCXX_NOEXCEPT
@@ -842,7 +842,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
#if __cplusplus >= 201103L
const_iterator
cbegin() const noexcept
- { return this->_M_impl._M_start; }
+ { return const_iterator(this->_M_impl._M_start._M_p, 0); }
const_iterator
cend() const noexcept