diff options
author | Jonathan Wakely <jwakely@redhat.com> | 2014-04-14 15:51:35 +0100 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2014-04-14 15:51:35 +0100 |
commit | 5b99e0a022d972be4c1a1978255b8de56d4ae59a (patch) | |
tree | 65c53e6245c00a6bf849c805d27c738ffc2b46cc /libstdc++-v3 | |
parent | b621e87556304edca4171db32e504b8418638f6b (diff) | |
download | gcc-5b99e0a022d972be4c1a1978255b8de56d4ae59a.zip gcc-5b99e0a022d972be4c1a1978255b8de56d4ae59a.tar.gz gcc-5b99e0a022d972be4c1a1978255b8de56d4ae59a.tar.bz2 |
Limit operations on vector::pointer to NullablePointer requirements.
* include/bits/stl_vector.h (_Vector_base::_Vector_impl,
_Vector_base::_M_allocate): NullablePointer requirements do not
include initialization from literal zero, use value-initialization.
* include/bits/vector.tcc (vector::_M_insert_aux,
vector::_M_explace_back_aux): Likewise for assignment.
From-SVN: r209377
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_vector.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/vector.tcc | 6 |
3 files changed, 15 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1d0e19a..a2ea772 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,11 @@ +2014-04-14 Jonathan Wakely <jwakely@redhat.com> + + * include/bits/stl_vector.h (_Vector_base::_Vector_impl, + _Vector_base::_M_allocate): NullablePointer requirements do not + include initialization from literal zero, use value-initialization. + * include/bits/vector.tcc (vector::_M_insert_aux, + vector::_M_explace_back_aux): Likewise for assignment. + 2014-04-11 Marc Glisse <marc.glisse@inria.fr> PR libstdc++/59434 diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index 7e52fde..3d3a2cf 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -84,17 +84,17 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER pointer _M_end_of_storage; _Vector_impl() - : _Tp_alloc_type(), _M_start(0), _M_finish(0), _M_end_of_storage(0) + : _Tp_alloc_type(), _M_start(), _M_finish(), _M_end_of_storage() { } _Vector_impl(_Tp_alloc_type const& __a) _GLIBCXX_NOEXCEPT - : _Tp_alloc_type(__a), _M_start(0), _M_finish(0), _M_end_of_storage(0) + : _Tp_alloc_type(__a), _M_start(), _M_finish(), _M_end_of_storage() { } #if __cplusplus >= 201103L _Vector_impl(_Tp_alloc_type&& __a) noexcept : _Tp_alloc_type(std::move(__a)), - _M_start(0), _M_finish(0), _M_end_of_storage(0) + _M_start(), _M_finish(), _M_end_of_storage() { } #endif @@ -167,7 +167,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER _M_allocate(size_t __n) { typedef __gnu_cxx::__alloc_traits<_Tp_alloc_type> _Tr; - return __n != 0 ? _Tr::allocate(_M_impl, __n) : 0; + return __n != 0 ? _Tr::allocate(_M_impl, __n) : pointer(); } void diff --git a/libstdc++-v3/include/bits/vector.tcc b/libstdc++-v3/include/bits/vector.tcc index 1eff514..299e614 100644 --- a/libstdc++-v3/include/bits/vector.tcc +++ b/libstdc++-v3/include/bits/vector.tcc @@ -362,7 +362,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER #else __x); #endif - __new_finish = 0; + __new_finish = pointer(); __new_finish = std::__uninitialized_move_if_noexcept_a @@ -412,7 +412,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER { _Alloc_traits::construct(this->_M_impl, __new_start + size(), std::forward<_Args>(__args)...); - __new_finish = 0; + __new_finish = pointer(); __new_finish = std::__uninitialized_move_if_noexcept_a @@ -493,7 +493,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER std::__uninitialized_fill_n_a(__new_start + __elems_before, __n, __x, _M_get_Tp_allocator()); - __new_finish = 0; + __new_finish = pointer(); __new_finish = std::__uninitialized_move_if_noexcept_a |