From 86920074bfc4f6319edce71b7a11e49417599f0c Mon Sep 17 00:00:00 2001 From: Marc Glisse Date: Tue, 2 Oct 2018 16:59:25 +0200 Subject: [PATCH] vector _M_start and 0 offset 2018-10-02 Marc Glisse PR libstdc++/87258 * include/bits/stl_bvector.h (vector::begin(), vector::cbegin()): Rebuild _M_start with an explicit 0 offset. From-SVN: r264791 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/include/bits/stl_bvector.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 388ae9d9069..30ff00af139 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2018-10-02 Marc Glisse + + 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 * 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 4527ce7832a..19c16839cfa 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