This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [v3] debug mode simplifications
- From: Paolo Carlini <pcarlini at suse dot de>
- To: Benjamin Kosnik <bkoz at redhat dot com>
- Cc: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Wed, 22 Feb 2006 11:23:43 +0100
- Subject: Re: [v3] debug mode simplifications
- References: <20060221190749.01f14dcc.bkoz@redhat.com>
Hi Benjamin
and thanks a lot for the simplifications!
>Anyway. There is one new failure versus gcc-4.0.x, in that
>
>23_containers/list/operators/5.cc
>
>now fails.
>
Fixed with the below, as discussed privately.
Tested x86-linux.
Paolo.
///////////////////
2006-02-22 Paolo Carlini <pcarlini@suse.de>
* include/debug/list (splice): Remove splice_alloc check, redundant
after implementing the splice bits of N1599.
Index: include/debug/list
===================================================================
--- include/debug/list (revision 111357)
+++ include/debug/list (working copy)
@@ -1,6 +1,6 @@
// Debugging list implementation -*- C++ -*-
-// Copyright (C) 2003, 2004, 2005
+// Copyright (C) 2003, 2004, 2005, 2006
// Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
@@ -307,9 +307,10 @@
splice(iterator __position, list& __x, iterator __i)
{
__glibcxx_check_insert(__position);
- _GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(__gnu_debug::__msg_splice_alloc)
- ._M_sequence(*this)._M_sequence(__x, "__x"));
+
+ // We used to perform the splice_alloc check: not anymore, redundant
+ // after implementing the relevant bits of N1599.
+
_GLIBCXX_DEBUG_VERIFY(__i._M_dereferenceable(),
_M_message(__gnu_debug::__msg_splice_bad)
._M_iterator(__i, "__i"));
@@ -332,10 +333,10 @@
_M_message(__gnu_debug::__msg_splice_other)
._M_sequence(__x, "x")
._M_iterator(__first, "first"));
- _GLIBCXX_DEBUG_VERIFY(__x.get_allocator() == this->get_allocator(),
- _M_message(__gnu_debug::__msg_splice_alloc)
- ._M_sequence(*this)._M_sequence(__x));
+ // We used to perform the splice_alloc check: not anymore, redundant
+ // after implementing the relevant bits of N1599.
+
for (iterator __tmp = __first; __tmp != __last; )
{
_GLIBCXX_DEBUG_VERIFY(&__x != this || __tmp != __position,