diff options
author | Matthew Levine <gcc@severeweblint.org> | 2007-04-02 10:15:50 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2007-04-02 10:15:50 +0000 |
commit | be1088fa6a41636642119ca4d3e231d112daf578 (patch) | |
tree | bb8c89b2bc03e0359096edb497c5ff4d676ca371 /libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc | |
parent | 3d919c620fb071efa7d388622d4b1f713d985045 (diff) | |
download | gcc-be1088fa6a41636642119ca4d3e231d112daf578.tar.gz |
re PR libstdc++/31370 (resizing bugs in std::vector<bool>)
2007-04-02 Matthew Levine <gcc@severeweblint.org>
Paolo Carlini <pcarlini@suse.de>
PR libstdc++/31370
* include/bits/stl_bvector.h (vector<bool>::max_size): Fix.
(vector<bool>::_M_check_len): Add.
* include/bits/vector.tcc (_M_fill_insert(iterator, size_type, bool),
_M_insert_range(iterator, _ForwardIterator, _ForwardIterator,
std::forward_iterator_tag), _M_insert_aux(iterator, bool)): Use it.
* testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: New.
* testsuite/23_containers/vector/bool/capacity/29134.cc: Adjust.
* include/bits/stl_vector.h (vector<>::_M_check_len): Add.
* include/bits/vector.tcc (_M_insert_aux(iterator, const _Tp&),
_M_fill_insert(iterator, size_type, const value_type&),
_M_range_insert(iterator, _ForwardIterator, _ForwardIterator,
std::forward_iterator_tag)): Use it.
Co-Authored-By: Paolo Carlini <pcarlini@suse.de>
From-SVN: r123424
Diffstat (limited to 'libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc')
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc index 4290c86fef9..69e5a535c9c 100644 --- a/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc +++ b/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc @@ -1,4 +1,4 @@ -// Copyright (C) 2006 Free Software Foundation, Inc. +// Copyright (C) 2006, 2007 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -28,7 +28,11 @@ void test01() std::vector<bool> vb; - VERIFY( vb.max_size() == std::vector<bool>::size_type(-1) ); + // Actually, vector<bool> is special, see libstdc++/31370. + typedef std::vector<bool>::difference_type difference_type; + VERIFY( vb.max_size() + == (std::numeric_limits<difference_type>::max() + - int(std::_S_word_bit) + 1) ); } int main() |