summaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
diff options
context:
space:
mode:
authorMatthew Levine <gcc@severeweblint.org>2007-04-02 10:15:50 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2007-04-02 10:15:50 +0000
commitbe1088fa6a41636642119ca4d3e231d112daf578 (patch)
treebb8c89b2bc03e0359096edb497c5ff4d676ca371 /libstdc++-v3/testsuite/23_containers/vector/bool/capacity/29134.cc
parent3d919c620fb071efa7d388622d4b1f713d985045 (diff)
downloadgcc-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.cc8
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()