mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-20 09:20:42 +08:00
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
This commit is contained in:
parent
b621e87556
commit
5b99e0a022
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user