From patchwork Mon Feb 20 17:37:32 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paolo Carlini X-Patchwork-Id: 142173 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 69A6BB6F62 for ; Tue, 21 Feb 2012 04:40:08 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1330364408; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Received:Received:Message-ID:Date:From:User-Agent:MIME-Version: To:CC:Subject:Content-Type:Mailing-List:Precedence:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:Sender: Delivered-To; bh=D2Ct5zJOF0BQYmF8pGfKjfzePnc=; b=fY+z3OxhvzXkg0e qaR04oaU1y/2P2WJ0jEl1EVYUfk2SOasQVT1AmiUkjm7dg9SPFVFPvknkQ4SXX+t dBPHmYbgkMSoY8Y6cl2J2ay6Ryp2jeQM4DppfpI9TaaAnuXqouNa3lOO1UxqoDeR XR8HfqlyeelmVDzy6aiY2qwRFwMs= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Received:Received:Message-ID:Date:From:User-Agent:MIME-Version:To:CC:Subject:Content-Type:X-IsSubscribed:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=LXraTYmV3TREi/caIR4eej2pX+7qyCfmfliFGiqHBOGbs8lhsGd+UoGK7e5fEp jApXdWGCq8seM/AGuhX1UX01+7J58Nwv1oExtXLfRy3QuDDROJmg2Bd+vhBsPJfb /p3rPonDXuHx4E//+91CmqxOSEKci1mn676v+Oxz8NXZo=; Received: (qmail 630 invoked by alias); 20 Feb 2012 17:40:00 -0000 Received: (qmail 607 invoked by uid 22791); 20 Feb 2012 17:39:59 -0000 X-SWARE-Spam-Status: No, hits=-6.0 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com) (148.87.113.117) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 20 Feb 2012 17:39:38 +0000 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q1KHdbid019880 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 20 Feb 2012 17:39:37 GMT Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q1KHdaIB017550 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 20 Feb 2012 17:39:37 GMT Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54]) by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q1KHdaWr000853; Mon, 20 Feb 2012 11:39:36 -0600 Received: from [192.168.1.4] (/79.33.217.226) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 20 Feb 2012 09:39:36 -0800 Message-ID: <4F4284DC.3030009@oracle.com> Date: Mon, 20 Feb 2012 18:37:32 +0100 From: Paolo Carlini User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.1) Gecko/20120208 Thunderbird/10.0.1 MIME-Version: 1.0 To: "gcc-patches@gcc.gnu.org" CC: libstdc++ Subject: [v3] libstdc++/52241 X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org Hi, thus, this is what I'm going to commit to resolve the issue (see audit trail for details). Tested x86_64-linux. Thanks, Paolo. /////////////////////// 2012-12-20 Paolo Carlini PR libstdc++/52241 * src/c++98/tree.cc (local_Rb_tree_increment, local_Rb_tree_decrement): Add. (_Rb_tree_increment(const _Rb_tree_node_base*), _Rb_tree_decrement(const _Rb_tree_node_base*)): Use the latter. (_Rb_tree_increment(_Rb_tree_node_base*), _Rb_tree_decrement(_Rb_tree_node_base*)): New. Index: src/c++98/tree.cc =================================================================== --- src/c++98/tree.cc (revision 184388) +++ src/c++98/tree.cc (working copy) @@ -1,6 +1,6 @@ // RB tree utilities implementation -*- C++ -*- -// Copyright (C) 2003, 2005, 2009 Free Software Foundation, Inc. +// Copyright (C) 2003, 2005, 2009, 2012 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 @@ -56,8 +56,8 @@ { _GLIBCXX_BEGIN_NAMESPACE_VERSION - _Rb_tree_node_base* - _Rb_tree_increment(_Rb_tree_node_base* __x) throw () + static _Rb_tree_node_base* + local_Rb_tree_increment(_Rb_tree_node_base* __x) throw () { if (__x->_M_right != 0) { @@ -79,14 +79,20 @@ return __x; } + _Rb_tree_node_base* + _Rb_tree_increment(_Rb_tree_node_base* __x) throw () + { + return local_Rb_tree_increment(__x); + } + const _Rb_tree_node_base* _Rb_tree_increment(const _Rb_tree_node_base* __x) throw () { - return _Rb_tree_increment(const_cast<_Rb_tree_node_base*>(__x)); + return local_Rb_tree_increment(const_cast<_Rb_tree_node_base*>(__x)); } - _Rb_tree_node_base* - _Rb_tree_decrement(_Rb_tree_node_base* __x) throw () + static _Rb_tree_node_base* + local_Rb_tree_decrement(_Rb_tree_node_base* __x) throw () { if (__x->_M_color == _S_red && __x->_M_parent->_M_parent == __x) @@ -111,10 +117,16 @@ return __x; } + _Rb_tree_node_base* + _Rb_tree_decrement(_Rb_tree_node_base* __x) throw () + { + return local_Rb_tree_decrement(__x); + } + const _Rb_tree_node_base* _Rb_tree_decrement(const _Rb_tree_node_base* __x) throw () { - return _Rb_tree_decrement(const_cast<_Rb_tree_node_base*>(__x)); + return local_Rb_tree_decrement(const_cast<_Rb_tree_node_base*>(__x)); } static void