From 6c8ce02fcd50cd5603b1619ee6caa7f709979f12 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sat, 1 Jun 2002 00:48:21 +0000 Subject: [PATCH] stl_bvector.h: Use UL suffix for unsigned longs. 2002-05-31 Marcus Meissner * include/bits/stl_bvector.h: Use UL suffix for unsigned longs. * testsuite/23_containers/vector_bool.cc (test02): New test. From-SVN: r54128 --- libstdc++-v3/ChangeLog | 5 ++++ libstdc++-v3/include/bits/stl_bvector.h | 4 ++-- .../testsuite/23_containers/vector_bool.cc | 24 +++++++++++++++++++ 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index c7d7b8a9e6c..6d097ff98c4 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2002-05-31 Marcus Meissner + + * include/bits/stl_bvector.h: Use UL suffix for unsigned longs. + * testsuite/23_containers/vector_bool.cc (test02): New test. + 2002-05-30 Marc Espie * configure.in: Always check for sys/types.h * configure: Regenerate. diff --git a/libstdc++-v3/include/bits/stl_bvector.h b/libstdc++-v3/include/bits/stl_bvector.h index 6cb6d9caf36..e48ad7d63fd 100644 --- a/libstdc++-v3/include/bits/stl_bvector.h +++ b/libstdc++-v3/include/bits/stl_bvector.h @@ -166,7 +166,7 @@ struct _Bit_iterator : public _Bit_iterator_base _Bit_iterator(_Bit_type * __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} - reference operator*() const { return reference(_M_p, 1U << _M_offset); } + reference operator*() const { return reference(_M_p, 1UL << _M_offset); } iterator& operator++() { _M_bump_up(); return *this; @@ -223,7 +223,7 @@ struct _Bit_const_iterator : public _Bit_iterator_base : _Bit_iterator_base(__x._M_p, __x._M_offset) {} const_reference operator*() const { - return _Bit_reference(_M_p, 1U << _M_offset); + return _Bit_reference(_M_p, 1UL << _M_offset); } const_iterator& operator++() { _M_bump_up(); diff --git a/libstdc++-v3/testsuite/23_containers/vector_bool.cc b/libstdc++-v3/testsuite/23_containers/vector_bool.cc index 820bbaca54f..17d63d1f854 100644 --- a/libstdc++-v3/testsuite/23_containers/vector_bool.cc +++ b/libstdc++-v3/testsuite/23_containers/vector_bool.cc @@ -29,8 +29,32 @@ void test01() ++i; } +// libstdc++/6886 +void test02() +{ + typedef std::vector bvec; + int i, num = 0; + bvec v; + + v.resize(66); + + for (i = 0 ; i < 66 ; ++i) + v[i] = 0; + + v[1] = 1; + v[33] = 1; + v[49] = 1; + v[65] = 1; + + for (bvec::iterator j = v.begin() ; j != v.end() ; j++) + if (bool(*j)) ++num; + + VERIFY( num == 4 ); +} + int main() { test01(); + test02(); return 0; }