From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122724 invoked by alias); 25 Oct 2016 13:59:56 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 122710 invoked by uid 89); 25 Oct 2016 13:59:55 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=cauldron, direction, Cauldron, RPC X-HELO: mx1.redhat.com Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 25 Oct 2016 13:59:45 +0000 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C80E065D1A; Tue, 25 Oct 2016 13:59:43 +0000 (UTC) Received: from [127.0.0.1] (ovpn01.gateway.prod.ext.ams2.redhat.com [10.39.146.11]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u9PDxfOZ031473; Tue, 25 Oct 2016 09:59:42 -0400 Subject: [pushed] Make dwarf_expr_context's destructor virtual (Re: [RFA 2/2] Make some dwarf_expr_context methods pure virtual) To: Ulrich Weigand References: <20161025132913.E448D11C276@oc8523832656.ibm.com> Cc: Tom Tromey , gdb-patches@sourceware.org From: Pedro Alves Message-ID: Date: Tue, 25 Oct 2016 13:59:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 MIME-Version: 1.0 In-Reply-To: <20161025132913.E448D11C276@oc8523832656.ibm.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-SW-Source: 2016-10/txt/msg00701.txt.bz2 On 10/25/2016 02:29 PM, Ulrich Weigand wrote: > Pedro Alves wrote: >>>>>>>> "Ulrich" == Ulrich Weigand writes: >>> >>> Ulrich> This seems to have broken my SPU daily build (running on RHEL 5 with a >>> Ulrich> GCC 4.1 system compiler): >> >> Any chance you could install the newer GCC from DTS on that machine? > > I don't think there even is a DTS for RHEL 5 on Power, or has that changed? Whoops, you're right. Sorry, missed that. >> Otherwise, if/when we go C++11, that builder will stop working. > > Well, once GDB officially no longer supports building with GCC 4.1, I'll > have to come up with another solution; I'll probably just build my own > compiler then. However, as long as GCC 4.1 *is* supported, I think it > is a good to actually still have a system testing that. Agreed. I'd like to move forward with requiring C++11 soon though. I was mainly giving it some more time: https://sourceware.org/ml/gdb-patches/2016-10/msg00607.html > (In any case, I'm not sure how long it makes sense to keep the Cell SPU > daily build up and running, given that RHEL 5 is about to go out of > service anyway and more recent distros no longer support Cell ...) It's up to you of course. As we chatted on the Cauldron, it's unfortunate since that's the best way we have to avoid multi-arch support from bit rotting. I'd like to see gdb move in the direction of supporting seamless remote-procedure calls. E.g., following an RPC call across 32-bit client x 64-bit server and back, even on the same machine. Seamless CPU+GPU debugging support likely will take advantage of it as well in the future. So maybe we'll gain back testing some other way. > >> In file included from .../src/gdb/dwarf2expr.c:28:0: >> .../src/gdb/dwarf2expr.h:68:8: warning: ‘struct dwarf_expr_context’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor] >> struct dwarf_expr_context >> ^~~~~~~~~~~~~~~~~~ >> >> I'll add the "virtual" in a bit. > > Thanks! Pushed now. >From beb18c865c42ab57176099eecb65bb52e71def85 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Tue, 25 Oct 2016 14:32:35 +0100 Subject: [PATCH] Make dwarf_expr_context's destructor virtual MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ref: https://sourceware.org/ml/gdb-patches/2016-10/msg00662.html $ make WERROR_CFLAGS="-Wnon-virtual-dtor" dwarf2expr.o ... In file included from .../src/gdb/dwarf2expr.c:28:0: .../src/gdb/dwarf2expr.h:68:8: warning: ‘struct dwarf_expr_context’ has virtual functions and accessible non-virtual destructor [-Wnon-virtual-dtor] struct dwarf_expr_context ^~~~~~~~~~~~~~~~~~ Happens to not be a problem in practice currently because concrete subclasses are allocated on the stack. I.e., we don't ever delete objects of types that derive from dwarf_expr_context through pointers to dwarf_expr_context. gdb/ChangeLog: 2016-10-25 Pedro Alves * dwarf2expr.h (struct dwarf_expr_context) <~dwarf_expr_context>: Make virtual. --- gdb/ChangeLog | 5 +++++ gdb/dwarf2expr.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 10d6866..91f36f9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2016-10-25 Pedro Alves + + * dwarf2expr.h (struct dwarf_expr_context) <~dwarf_expr_context>: + Make virtual. + 2016-10-25 Rainer Orth PR build/20712 diff --git a/gdb/dwarf2expr.h b/gdb/dwarf2expr.h index 7bf194a..3d08120 100644 --- a/gdb/dwarf2expr.h +++ b/gdb/dwarf2expr.h @@ -68,7 +68,7 @@ struct dwarf_stack_value struct dwarf_expr_context { dwarf_expr_context (); - ~dwarf_expr_context (); + virtual ~dwarf_expr_context (); void push_address (CORE_ADDR value, int in_stack_memory); void eval (const gdb_byte *addr, size_t len); -- 2.5.5