From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from alt-proxy28.mail.unifiedlayer.com (alt-proxy28.mail.unifiedlayer.com [74.220.216.123]) by sourceware.org (Postfix) with ESMTPS id 6A258385783B for ; Thu, 13 Jan 2022 16:29:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6A258385783B Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=tromey.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=tromey.com Received: from cmgw14.mail.unifiedlayer.com (unknown [10.0.90.129]) by progateway1.mail.pro1.eigbox.com (Postfix) with ESMTP id 61C1F1003B6DF for ; Thu, 13 Jan 2022 16:29:10 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id 82yLnyYVX2s5d82yMncMB8; Thu, 13 Jan 2022 16:29:10 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=BOh2EHcG c=1 sm=1 tr=0 ts=61e05356 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=DghFqjY3_ZEA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=4VmA5fUNNlu53Hc-82sA:9 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tromey.com; s=default; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=dxqDxfi0sjCpohDGomUAK1PxWlj7ajzlgDXkb/8GYcA=; b=eWH5Zlyn/SDz/i2fkLEjD136qJ 8yCv2M0gI4NQ9gbx4sruDut7RAZaAn2fTbZ33UeyKHx163euzrM4f+JNgVbPWHnytNpzlku7yUiVE rtWKsLTsa9Ek+orcI8Ri85AxR; Received: from 75-166-134-30.hlrn.qwest.net ([75.166.134.30]:40280 helo=prentzel.Home) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1n82yL-001AR2-Jj; Thu, 13 Jan 2022 09:29:09 -0700 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 4/4] Simplify Ada catchpoints Date: Thu, 13 Jan 2022 09:29:06 -0700 Message-Id: <20220113162906.1000129-5-tom@tromey.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20220113162906.1000129-1-tom@tromey.com> References: <20220113162906.1000129-1-tom@tromey.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - box5379.bluehost.com X-AntiAbuse: Original Domain - sourceware.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - tromey.com X-BWhitelist: no X-Source-IP: 75.166.134.30 X-Source-L: No X-Exim-ID: 1n82yL-001AR2-Jj X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 75-166-134-30.hlrn.qwest.net (prentzel.Home) [75.166.134.30]:40280 X-Source-Auth: tom+tromey.com X-Email-Count: 5 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3031.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, JMQ_SPF_NEUTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Jan 2022 16:29:13 -0000 All the Ada catchpoints use the same breakpoint_ops contents, because the catchpoint itself records its kind. This patch simplifies the code by removing the redundant ops structures. --- gdb/ada-lang.c | 68 +++----------------------------------------------- 1 file changed, 3 insertions(+), 65 deletions(-) diff --git a/gdb/ada-lang.c b/gdb/ada-lang.c index f2f8617cc1e..80f98930b5f 100644 --- a/gdb/ada-lang.c +++ b/gdb/ada-lang.c @@ -12042,21 +12042,15 @@ print_recreate_exception (struct breakpoint *b, struct ui_file *fp) print_recreate_thread (b, fp); } -/* Virtual tables for various breakpoint types. */ +/* Virtual table for breakpoint type. */ static struct breakpoint_ops catch_exception_breakpoint_ops; -static struct breakpoint_ops catch_exception_unhandled_breakpoint_ops; -static struct breakpoint_ops catch_assert_breakpoint_ops; -static struct breakpoint_ops catch_handlers_breakpoint_ops; /* See ada-lang.h. */ bool is_ada_exception_catchpoint (breakpoint *bp) { - return (bp->ops == &catch_exception_breakpoint_ops - || bp->ops == &catch_exception_unhandled_breakpoint_ops - || bp->ops == &catch_assert_breakpoint_ops - || bp->ops == &catch_handlers_breakpoint_ops); + return bp->ops == &catch_exception_breakpoint_ops; } /* Split the arguments specified in a "catch exception" command. @@ -12166,32 +12160,6 @@ ada_exception_sym_name (enum ada_exception_catchpoint_kind ex) } } -/* Return the breakpoint ops "virtual table" used for catchpoints - of the EX kind. */ - -static const struct breakpoint_ops * -ada_exception_breakpoint_ops (enum ada_exception_catchpoint_kind ex) -{ - switch (ex) - { - case ada_catch_exception: - return (&catch_exception_breakpoint_ops); - break; - case ada_catch_exception_unhandled: - return (&catch_exception_unhandled_breakpoint_ops); - break; - case ada_catch_assert: - return (&catch_assert_breakpoint_ops); - break; - case ada_catch_handlers: - return (&catch_handlers_breakpoint_ops); - break; - default: - internal_error (__FILE__, __LINE__, - _("unexpected catchpoint kind (%d)"), ex); - } -} - /* Return the condition that will be used to match the current exception being raised with the exception that the user wants to catch. This assumes that this condition is used when the inferior just triggered @@ -12285,7 +12253,7 @@ ada_exception_sal (enum ada_exception_catchpoint_kind ex, *addr_string = sym_name; /* Set OPS. */ - *ops = ada_exception_breakpoint_ops (ex); + *ops = &catch_exception_breakpoint_ops; return find_function_start_sal (sym, 1); } @@ -13445,36 +13413,6 @@ initialize_ada_catchpoint_ops (void) ops->print_one = print_one_exception; ops->print_mention = print_mention_exception; ops->print_recreate = print_recreate_exception; - - ops = &catch_exception_unhandled_breakpoint_ops; - *ops = bkpt_breakpoint_ops; - ops->allocate_location = allocate_location_exception; - ops->re_set = re_set_exception; - ops->check_status = check_status_exception; - ops->print_it = print_it_exception; - ops->print_one = print_one_exception; - ops->print_mention = print_mention_exception; - ops->print_recreate = print_recreate_exception; - - ops = &catch_assert_breakpoint_ops; - *ops = bkpt_breakpoint_ops; - ops->allocate_location = allocate_location_exception; - ops->re_set = re_set_exception; - ops->check_status = check_status_exception; - ops->print_it = print_it_exception; - ops->print_one = print_one_exception; - ops->print_mention = print_mention_exception; - ops->print_recreate = print_recreate_exception; - - ops = &catch_handlers_breakpoint_ops; - *ops = bkpt_breakpoint_ops; - ops->allocate_location = allocate_location_exception; - ops->re_set = re_set_exception; - ops->check_status = check_status_exception; - ops->print_it = print_it_exception; - ops->print_one = print_one_exception; - ops->print_mention = print_mention_exception; - ops->print_recreate = print_recreate_exception; } /* This module's 'new_objfile' observer. */ -- 2.31.1