re PR libstdc++/19510 ([3.3 only] Uninitialized pointers in iterators)
authorVolker Reichelt <reichelt@igpm.rwth-aachen.de>
Fri, 21 Jan 2005 01:23:28 +0000 (01:23 +0000)
committerVolker Reichelt <reichelt@gcc.gnu.org>
Fri, 21 Jan 2005 01:23:28 +0000 (01:23 +0000)
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

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/stl_list.h
libstdc++-v3/include/bits/stl_tree.h
libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc
libstdc++-v3/testsuite/23_containers/set/operators/1_neg.cc

index a357e00..e092d10 100644 (file)
@@ -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.
index ff6a0df..bada997 100644 (file)
@@ -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) { }
index 197d52a..2f43c4a 100644 (file)
@@ -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) { }
index 15b182d..9211201 100644 (file)
@@ -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 }
index 4a5b45b..c1e420e 100644 (file)
@@ -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 }