diff options
author | Jonathan Wakely <jwakely.gcc@gmail.com> | 2012-11-07 09:17:42 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2012-11-07 09:17:42 +0000 |
commit | d720a22b6e192786811365dc76824c6242e5f16d (patch) | |
tree | 620d7f53cf5dd17bea18ed6eacf0aac0bf4a48c1 /libstdc++-v3 | |
parent | aaa050aa4a13eb045ae5db57d8a50a5b4121c29e (diff) | |
download | gcc-d720a22b6e192786811365dc76824c6242e5f16d.zip gcc-d720a22b6e192786811365dc76824c6242e5f16d.tar.gz gcc-d720a22b6e192786811365dc76824c6242e5f16d.tar.bz2 |
stl_vector.h (vector(size_type)): Add missing allocator parameter.
* include/bits/stl_vector.h (vector(size_type)): Add missing allocator
parameter.
* include/bits/stl_bvector.h: Likewise.
* include/debug/vector (vector(size_type)): Likewise.
* include/profile/vector (vector(size_type)): Likewise. Pass allocator
to base constructor.
* testsuite/23_containers/vector/requirements/dr438/assign_neg.cc:
Adjust dg-error line numbers.
* testsuite/23_containers/vector/requirements/dr438/
constructor_1_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/
constructor_2_neg.cc: Likewise.
* testsuite/23_containers/vector/requirements/dr438/insert_neg.cc:
Likewise.
From-SVN: r193284
Diffstat (limited to 'libstdc++-v3')
9 files changed, 45 insertions, 11 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 184efed..233f2b9 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,20 @@ +2012-11-07 Jonathan Wakely <jwakely.gcc@gmail.com> + + * include/bits/stl_vector.h (vector(size_type)): Add missing allocator + parameter. + * include/bits/stl_bvector.h: Likewise. + * include/debug/vector (vector(size_type)): Likewise. + * include/profile/vector (vector(size_type)): Likewise. Pass allocator + to base constructor. + * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: + Adjust dg-error line numbers. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_1_neg.cc: Likewise. + * testsuite/23_containers/vector/requirements/dr438/ + constructor_2_neg.cc: Likewise. + * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: + Likewise. + 2012-11-06 Paolo Carlini <paolo.carlini@oracle.com> PR libstdc++/51850 diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 3adbfa1..b8d3efb 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -555,6 +555,21 @@ template<typename _Alloc> vector(const allocator_type& __a) : _Base(__a) { } +#ifdef __GXX_EXPERIMENTAL_CXX0X__ + explicit + vector(size_type __n, const allocator_type& __a = allocator_type()) + : vector(__n, false, __a) + { } + + vector(size_type __n, const bool& __value, + const allocator_type& __a = allocator_type()) + : _Base(__a) + { + _M_initialize(__n); + std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, + __value ? ~0 : 0); + } +#else explicit vector(size_type __n, const bool& __value = bool(), const allocator_type& __a = allocator_type()) @@ -564,6 +579,7 @@ template<typename _Alloc> std::fill(this->_M_impl._M_start._M_p, this->_M_impl._M_end_of_storage, __value ? ~0 : 0); } +#endif vector(const vector& __x) : _Base(__x._M_get_Bit_allocator()) diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index 6e229aa..1f14f7e 100644 --- a/libstdc++-v3/include/bits/stl_vector.h +++ b/libstdc++-v3/include/bits/stl_vector.h @@ -261,13 +261,14 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER /** * @brief Creates a %vector with default constructed elements. * @param __n The number of elements to initially create. + * @param __a An allocator. * * This constructor fills the %vector with @a __n default * constructed elements. */ explicit - vector(size_type __n) - : _Base(__n) + vector(size_type __n, const allocator_type& __a = allocator_type()) + : _Base(__n, __a) { _M_default_initialize(__n); } /** diff --git a/libstdc++-v3/include/debug/vector b/libstdc++-v3/include/debug/vector index 9c33fdf..fe65bab 100644 --- a/libstdc++-v3/include/debug/vector +++ b/libstdc++-v3/include/debug/vector @@ -83,8 +83,8 @@ namespace __debug #ifdef __GXX_EXPERIMENTAL_CXX0X__ explicit - vector(size_type __n) - : _Base(__n), _M_guaranteed_capacity(__n) { } + vector(size_type __n, const _Allocator& __a = _Allocator()) + : _Base(__n, __a), _M_guaranteed_capacity(__n) { } vector(size_type __n, const _Tp& __value, const _Allocator& __a = _Allocator()) diff --git a/libstdc++-v3/include/profile/vector b/libstdc++-v3/include/profile/vector index fcd6962..ec931a3 100644 --- a/libstdc++-v3/include/profile/vector +++ b/libstdc++-v3/include/profile/vector @@ -84,8 +84,8 @@ namespace __profile #ifdef __GXX_EXPERIMENTAL_CXX0X__ explicit - vector(size_type __n) - : _Base(__n) + vector(size_type __n, const _Allocator& __a = _Allocator()) + : _Base(__n, __a) { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); @@ -147,7 +147,7 @@ namespace __profile } vector(const _Base& __x, const _Allocator& __a) - : _Base(__x) + : _Base(__x, __a) { __profcxx_vector_construct(this, this->capacity()); __profcxx_vector_construct2(this); diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc index 320f4dd..8c00989 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1236 } +// { dg-error "no matching" "" { target *-*-* } 1237 } #include <vector> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc index 78a6ead..e5a4644 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1166 } +// { dg-error "no matching" "" { target *-*-* } 1167 } #include <vector> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc index af12c6d..9e2924c2 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1166 } +// { dg-error "no matching" "" { target *-*-* } 1167 } #include <vector> #include <utility> diff --git a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc index da88180..e4bec26 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc @@ -18,7 +18,7 @@ // <http://www.gnu.org/licenses/>. // { dg-do compile } -// { dg-error "no matching" "" { target *-*-* } 1277 } +// { dg-error "no matching" "" { target *-*-* } 1278 } #include <vector> |