From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21120 invoked by alias); 12 Nov 2001 20:39:29 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 14292 invoked by uid 71); 12 Nov 2001 20:16:03 -0000 Resent-Date: 12 Nov 2001 20:16:02 -0000 Resent-Message-ID: <20011112201602.14291.qmail@sourceware.cygnus.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-To: nobody@gcc.gnu.org Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, aaw@rincewind.tv Received:(qmail 3451 invoked by uid 61); 12 Nov 2001 19:44:25 -0000 Message-Id:<20011112194424.3449.qmail@sourceware.cygnus.com> Date: Thu, 01 Nov 2001 15:39:00 -0000 From: aaw@rincewind.tv Reply-To: aaw@rincewind.tv To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version:gnatsweb-2.9.2 (1.1.1.1.2.21) Subject: c++/4861: template base class destructor calls virtual functions in derived classes X-SW-Source: 2001-11/txt/msg00018.txt.bz2 List-Id: >Number: 4861 >Category: c++ >Synopsis: template base class destructor calls virtual functions in derived classes >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Mon Nov 12 12:16:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: g++ -v -save-temps gcc-bug.cpp -o gcc-bug >Release: gcc version 2.96 20000731 >Organization: >Environment: Red Hat Linux 7.1 2.96-98 >Description: If a template base class destructor calls a virtual function, the most-derived version is called. This contradicts section 12.7 of the ANSI C++ Standard: When a virtual function is called directly or indirectly from a constructor (including from the mem-initializer for a data member) or from a destructor, and the object to which the call applies is the object under construction or destruction, the function called is the one defined in the constructor or destructor s own class or in one of its bases, but not a function overriding it in a class derived from the con-structor or destructor s class, or overriding it in one of the other base classes of the most derived object (1.8). >How-To-Repeat: The executable compiled from this source prints the sequence of calls to destructors and virtual function f(). The call sequence is: D::~D(), D::f(), B::~B(), D::f(). This last one should be B::f(). >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/x-bzip2; name="gcc-bug.ii.bz2" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gcc-bug.ii.bz2" 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