From patchwork Tue Feb 27 21:42:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Tromey X-Patchwork-Id: 86485 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D37253858429 for ; Tue, 27 Feb 2024 21:43:25 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) by sourceware.org (Postfix) with ESMTPS id 126783858C98 for ; Tue, 27 Feb 2024 21:42:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 126783858C98 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 126783858C98 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::d2a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709070142; cv=none; b=XpsIjWVTzIvnsBoR9fVelxbuBGfNAxoTdWeeu5R2w267xVXEQmpJQ8czuxbbSLX1PgdhPB4s6Tz9+B64vG1IzAULvTmJ1vJmctC/3GQo3pu67Tq5a52dvMarwd9g3+I7Y9GOBnPauxUfsIvnvzjq9sWKYxQweOtCHsIIk0JTCVE= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1709070142; c=relaxed/simple; bh=3M2SgEvGI4K1PcoLnm9azXFcwzMlfmpV/9P+wV8rxGk=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=sul51dqa3FjSH88zc2oH3CViRlT/77hFjLhYkxOIB299/1CDFZnIFmQHeMjHjVisOl5Z/B+REWhpvOpRs/Ri32bKArzY+j0JRC0MnKG10HyDM0QfEUOzxSZsK9TAC4tN5gkle3E1YdjCGe4Dc78gpf7z1H56D0bEYxPcGWYw1J0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-7c7f3f66d17so22048539f.0 for ; Tue, 27 Feb 2024 13:42:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1709070140; x=1709674940; darn=sourceware.org; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=u5YQASyCBX8RcgSArxeYMV+wwdJ+nUuSfurxZClQyXQ=; b=V5oXLnIyqz4Ptt2kA/sDTgqz26qUGDpDKkhblIZUkJyRrQgnwy3XeBHab3TBgno13U cW0o/rGzB2+kpNAJPily0IITNpHv/eDXRgHml3tSxoXM1OCjk8gYSGLThrTEQich86l8 4Ixw9iigDYzi8Z3889BtLsPRPSRSnj3hSYYKvmbwj13GCDB33FczzL8Idg7p89sfaXiw 6d4STm1toDpJqdTvqfFXztudX7O1FkRBWFnVac+axnCVw3VNptu1ND5gYpHVnoOwYzSd vACFRSfjjq9id/UYmJlu04vlJGPVYRUPciH4d7K92NwmcAw5DcLjveXbRBTplNZYUd7H BhPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1709070140; x=1709674940; h=to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u5YQASyCBX8RcgSArxeYMV+wwdJ+nUuSfurxZClQyXQ=; b=Vx58NaD1cmtseDXdr/P/Ia5F6uKU3Er6pqmzirhZ7AlLdyTqnPfhUBZld6NqPK5Cmh vTHNTPvKFiuXTWAW0HadvMA4PJqm2qc+HcqPbKm/cp7yqdsw8PV1hFpgaBAodB+p5UHv b/7BIZL6m+eYO/t0j6devfOqRTiFxWXa9+q+tWniSvJAzjQwLNkIaHtV8Iq8vyVil9LT r1ndw9hwP+PSxobTjINLlN2lk7QDlUZu7n0SrDlpv2jVjLcY4j7ULIf2wW1hmsY/M2M6 Pp9dynBKNZ1TDo0kg4FWN/6nKGFpbJAJwOOiYSCrJDGhnk0o+GJQaNm69ysGsP4jzePJ huUQ== X-Gm-Message-State: AOJu0YxNfQbhKI3zKDcZtrHb1hJEFRa4ezqrpMxH87WwKwkUBH3QpjX7 7mWu4QpjUEz/UWHol3ctjEOPUZJdBRfRD3cRBFnb4LV6hz34CRgKnAprt3XFErMF3K02NnatdMU = X-Google-Smtp-Source: AGHT+IFBkPgIYRGppQeNaFBDztfrVbA4HaiXMHvl19m4TvEMtfmbmGuqU0qmKn/R/rMJR7EAdd9ZMA== X-Received: by 2002:a6b:4e16:0:b0:7c7:f5d2:1815 with SMTP id c22-20020a6b4e16000000b007c7f5d21815mr538961iob.1.1709070140377; Tue, 27 Feb 2024 13:42:20 -0800 (PST) Received: from localhost.localdomain (71-211-170-195.hlrn.qwest.net. [71.211.170.195]) by smtp.gmail.com with ESMTPSA id gh4-20020a056638698400b0047438454db4sm1983600jab.9.2024.02.27.13.42.19 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 13:42:20 -0800 (PST) From: Tom Tromey Date: Tue, 27 Feb 2024 14:42:18 -0700 Subject: [PATCH 2/3] Don't use virtual destructor in addrmap MIME-Version: 1.0 Message-Id: <20240227-obstac-alloc-v1-2-bd079aad35cd@adacore.com> References: <20240227-obstac-alloc-v1-0-bd079aad35cd@adacore.com> In-Reply-To: <20240227-obstac-alloc-v1-0-bd079aad35cd@adacore.com> To: gdb-patches@sourceware.org X-Mailer: b4 0.12.4 X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org The addrmap polymorphism is sort of "phony" in that there isn't really code in the tree that can be presented with either type. I haven't tried to fix this (though perhaps I may); but meanwhile it's handy for the next patch if addrmap_fixed has a trivial destructor. This patch achieves this by making the addrmap destructor non-virtual, and also making it protected so that objects of any of these types cannot be destroyed when only the base class is known. --- gdb/addrmap.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gdb/addrmap.h b/gdb/addrmap.h index ba83607ad8c..0d61046cebd 100644 --- a/gdb/addrmap.h +++ b/gdb/addrmap.h @@ -44,8 +44,6 @@ using addrmap_foreach_const_fn /* The base class for addrmaps. */ struct addrmap { - virtual ~addrmap () = default; - /* Return the object associated with ADDR in MAP. */ const void *find (CORE_ADDR addr) const { return this->do_find (addr); } @@ -68,6 +66,9 @@ struct addrmap { return this->do_foreach (fn); } +protected: + ~addrmap () = default; + private: /* Worker for find, implemented by sub-classes. */ virtual void *do_find (CORE_ADDR addr) const = 0;