aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Meissner <meissner@suse.de>2002-06-01 00:48:21 +0000
committerPhil Edwards <pme@gcc.gnu.org>2002-06-01 00:48:21 +0000
commit6c8ce02fcd50cd5603b1619ee6caa7f709979f12 (patch)
tree3463f5cdade6477c666690f72199ae3be32993f4
parent6f9b006de010523b6186de10c00b1f0c366cb6c0 (diff)
downloadgcc-6c8ce02fcd50cd5603b1619ee6caa7f709979f12.zip
gcc-6c8ce02fcd50cd5603b1619ee6caa7f709979f12.tar.gz
gcc-6c8ce02fcd50cd5603b1619ee6caa7f709979f12.tar.bz2
stl_bvector.h: Use UL suffix for unsigned longs.
2002-05-31 Marcus Meissner <meissner@suse.de> * include/bits/stl_bvector.h: Use UL suffix for unsigned longs. * testsuite/23_containers/vector_bool.cc (test02): New test. From-SVN: r54128
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/bits/stl_bvector.h4
-rw-r--r--libstdc++-v3/testsuite/23_containers/vector_bool.cc24
3 files changed, 31 insertions, 2 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c7d7b8a..6d097ff 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,8 @@
+2002-05-31 Marcus Meissner <meissner@suse.de>
+
+ * 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 <espie@openbsd.org>
* 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 6cb6d9c..e48ad7d 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 820bbaca54..17d63d1 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<bool> 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;
}