diff options
author | Volker Reichelt <reichelt@igpm.rwth-aachen.de> | 2005-01-21 01:23:28 +0000 |
---|---|---|
committer | Volker Reichelt <reichelt@gcc.gnu.org> | 2005-01-21 01:23:28 +0000 |
commit | a7a4444157f5142a44cf4355191c1209be204c59 (patch) | |
tree | 2357ec7135481d419d233743b6a8425663f6a5ed | |
parent | 75c97b449c09ab7908df596dd3108b974d589717 (diff) | |
download | gcc-a7a4444157f5142a44cf4355191c1209be204c59.zip gcc-a7a4444157f5142a44cf4355191c1209be204c59.tar.gz gcc-a7a4444157f5142a44cf4355191c1209be204c59.tar.bz2 |
re PR libstdc++/19510 ([3.3 only] Uninitialized pointers in iterators)
PR libstdc++/19510
* include/bits/stl_list.h (_List_iterator): Initialize _M_node
in constructor.
(_List_const_iterator): Likewise.
* include/bits/stl_tree.h (_Rb_tree_iterator): Likewise.
(_Rb_tree_const_iterator): Likewise.
* testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers.
* testsuite/23_containers/set/operators/1_neg.cc: Likewise.
From-SVN: r94002
-rw-r--r-- | libstdc++-v3/ChangeLog | 12 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_list.h | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/stl_tree.h | 6 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc | 4 | ||||
-rw-r--r-- | libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc | 4 |
5 files changed, 25 insertions, 9 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a357e00..e092d10 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,15 @@ +2005-01-21 Volker Reichelt <reichelt@igpm.rwth-aachen.de> + + PR libstdc++/19510 + * include/bits/stl_list.h (_List_iterator): Initialize _M_node + in constructor. + (_List_const_iterator): Likewise. + * include/bits/stl_tree.h (_Rb_tree_iterator): Likewise. + (_Rb_tree_const_iterator): Likewise. + + * testsuite/23_containers/map/operators/1_neg.cc: Adjust line numbers. + * testsuite/23_containers/set/operators/1_neg.cc: Likewise. + 2005-01-20 Benjamin Kosnik <bkoz@redhat.com> * testsuite/Makefile.am (check-compile): New. diff --git a/libstdc++-v3/include/bits/stl_list.h b/libstdc++-v3/include/bits/stl_list.h index ff6a0df..bada997 100644 --- a/libstdc++-v3/include/bits/stl_list.h +++ b/libstdc++-v3/include/bits/stl_list.h @@ -1,6 +1,6 @@ // List implementation -*- C++ -*- -// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc. +// Copyright (C) 2001, 2002, 2003, 2004, 2005 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 @@ -119,7 +119,8 @@ namespace _GLIBCXX_STD typedef _Tp* pointer; typedef _Tp& reference; - _List_iterator() { } + _List_iterator() + : _M_node() { } _List_iterator(_List_node_base* __x) : _M_node(__x) { } @@ -195,7 +196,8 @@ namespace _GLIBCXX_STD typedef const _Tp* pointer; typedef const _Tp& reference; - _List_const_iterator() { } + _List_const_iterator() + : _M_node() { } _List_const_iterator(const _List_node_base* __x) : _M_node(__x) { } diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h index 197d52a..2f43c4a 100644 --- a/libstdc++-v3/include/bits/stl_tree.h +++ b/libstdc++-v3/include/bits/stl_tree.h @@ -161,7 +161,8 @@ namespace std typedef _Rb_tree_node_base::_Base_ptr _Base_ptr; typedef _Rb_tree_node<_Tp>* _Link_type; - _Rb_tree_iterator() { } + _Rb_tree_iterator() + : _M_node() { } _Rb_tree_iterator(_Link_type __x) : _M_node(__x) { } @@ -231,7 +232,8 @@ namespace std typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr; typedef const _Rb_tree_node<_Tp>* _Link_type; - _Rb_tree_const_iterator() { } + _Rb_tree_const_iterator() + : _M_node() { } _Rb_tree_const_iterator(_Link_type __x) : _M_node(__x) { } diff --git a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc index 15b182d..9211201 100644 --- a/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc @@ -41,5 +41,5 @@ void test01() test &= itr == mapByName.end(); // { dg-error "no" } } -// { dg-error "candidates are" "" { target *-*-* } 208 } -// { dg-error "candidates are" "" { target *-*-* } 212 } +// { dg-error "candidates are" "" { target *-*-* } 209 } +// { dg-error "candidates are" "" { target *-*-* } 213 } diff --git a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc index 4a5b45b..c1e420e 100644 --- a/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc +++ b/libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc @@ -39,5 +39,5 @@ void test01() test &= itr == setByName.end(); // { dg-error "no" } } -// { dg-error "candidates are" "" { target *-*-* } 281 } -// { dg-error "candidates are" "" { target *-*-* } 285 } +// { dg-error "candidates are" "" { target *-*-* } 283 } +// { dg-error "candidates are" "" { target *-*-* } 287 } |