From a7a4444157f5142a44cf4355191c1209be204c59 Mon Sep 17 00:00:00 2001 From: Volker Reichelt Date: Fri, 21 Jan 2005 01:23:28 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 12 ++++++++++++ libstdc++-v3/include/bits/stl_list.h | 8 +++++--- libstdc++-v3/include/bits/stl_tree.h | 6 ++++-- libstdc++-v3/testsuite/23_containers/map/operators/1_neg.cc | 4 ++-- 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 + + 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 * 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 } -- 2.7.4