From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from progateway7-pub.mail.pro1.eigbox.com (gproxy5-pub.mail.unifiedlayer.com [67.222.38.55]) by sourceware.org (Postfix) with ESMTPS id 500023858401 for ; Fri, 20 Jan 2023 21:46:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 500023858401 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 cmgw10.mail.unifiedlayer.com (unknown [10.0.90.125]) by progateway7.mail.pro1.eigbox.com (Postfix) with ESMTP id A919D10048174 for ; Fri, 20 Jan 2023 21:46:33 +0000 (UTC) Received: from box5379.bluehost.com ([162.241.216.53]) by cmsmtp with ESMTP id IzDVpicmgFqSRIzDVp2c9D; Fri, 20 Jan 2023 21:46:33 +0000 X-Authority-Reason: nr=8 X-Authority-Analysis: v=2.4 cv=c6Ru/Txl c=1 sm=1 tr=0 ts=63cb0bb9 a=ApxJNpeYhEAb1aAlGBBbmA==:117 a=ApxJNpeYhEAb1aAlGBBbmA==:17 a=dLZJa+xiwSxG16/P+YVxDGlgEgI=:19 a=RvmDmJFTN0MA:10:nop_rcvd_month_year a=Qbun_eYptAEA:10:endurance_base64_authed_username_1 a=I_E5aphFeQbykE197SwA: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=cVtpXuuBPfE4jKUwlvWIIskTQl/6ySboVwneL338AFk=; b=kSvOQ7SW/YPgZ02Z5AOoGzJK/n dA2lw+zhrj8Prj5kSrl0J8qPQthyTSZVrVSbvXL206HQakYQAlfGqZvdWwANwrgfE7dxd4rPCzorj MSBsazaqBwBQd0luTC+S0E6cn; Received: from 97-122-76-186.hlrn.qwest.net ([97.122.76.186]:36374 helo=localhost.localdomain) by box5379.bluehost.com with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1pIzDV-001G7B-Cp; Fri, 20 Jan 2023 14:46:33 -0700 From: Tom Tromey To: gdb-patches@sourceware.org Cc: Tom Tromey Subject: [PATCH 09/27] Convert block_inlined_p to method Date: Fri, 20 Jan 2023 14:46:00 -0700 Message-Id: <20230120214618.3236224-10-tom@tromey.com> X-Mailer: git-send-email 2.39.0 In-Reply-To: <20230120214618.3236224-1-tom@tromey.com> References: <20230120214618.3236224-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: 97.122.76.186 X-Source-L: No X-Exim-ID: 1pIzDV-001G7B-Cp X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: 97-122-76-186.hlrn.qwest.net (localhost.localdomain) [97.122.76.186]:36374 X-Source-Auth: tom+tromey.com X-Email-Count: 10 X-Source-Cap: ZWx5bnJvYmk7ZWx5bnJvYmk7Ym94NTM3OS5ibHVlaG9zdC5jb20= X-Local-Domain: yes X-Spam-Status: No, score=-3027.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,JMQ_SPF_NEUTRAL,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This converts block_inlined_p to be a method. This was mostly written by script. --- gdb/block.c | 12 ++++++------ gdb/block.h | 6 ++++-- gdb/blockframe.c | 2 +- gdb/findvar.c | 2 +- gdb/inline-frame.c | 4 ++-- gdb/symtab.c | 8 ++++---- 6 files changed, 18 insertions(+), 16 deletions(-) diff --git a/gdb/block.c b/gdb/block.c index b9c48e79d46..574086aa4f6 100644 --- a/gdb/block.c +++ b/gdb/block.c @@ -77,7 +77,7 @@ contained_in (const struct block *a, const struct block *b, return true; /* If A is a function block, then A cannot be contained in B, except if A was inlined. */ - if (!allow_nested && a->function () != NULL && !block_inlined_p (a)) + if (!allow_nested && a->function () != NULL && !a->inlined_p ()) return false; a = a->superblock (); } @@ -95,7 +95,7 @@ contained_in (const struct block *a, const struct block *b, struct symbol * block_linkage_function (const struct block *bl) { - while ((bl->function () == NULL || block_inlined_p (bl)) + while ((bl->function () == NULL || bl->inlined_p ()) && bl->superblock () != NULL) bl = bl->superblock (); @@ -116,12 +116,12 @@ block_containing_function (const struct block *bl) return bl->function (); } -/* Return one if BL represents an inlined function. */ +/* See block.h. */ -int -block_inlined_p (const struct block *bl) +bool +block::inlined_p () const { - return bl->function () != NULL && bl->function ()->is_inlined (); + return function () != nullptr && function ()->is_inlined (); } /* A helper function that checks whether PC is in the blockvector BL. diff --git a/gdb/block.h b/gdb/block.h index b9f1ba81b50..ab343b44698 100644 --- a/gdb/block.h +++ b/gdb/block.h @@ -212,6 +212,10 @@ struct block struct gdbarch *gdbarch () const; + /* Return true if BL represents an inlined function. */ + + bool inlined_p () const; + /* Addresses in the executable code that are in this block. */ CORE_ADDR m_start; @@ -343,8 +347,6 @@ extern struct symbol *block_linkage_function (const struct block *); extern struct symbol *block_containing_function (const struct block *); -extern int block_inlined_p (const struct block *block); - /* Return true if block A is lexically nested within block B, or if a and b have the same pc range. Return false otherwise. If ALLOW_NESTED is true, then block A is considered to be in block B diff --git a/gdb/blockframe.c b/gdb/blockframe.c index 071254824b0..2796fc99154 100644 --- a/gdb/blockframe.c +++ b/gdb/blockframe.c @@ -72,7 +72,7 @@ get_frame_block (frame_info_ptr frame, CORE_ADDR *addr_in_block) while (inline_count > 0) { - if (block_inlined_p (bl)) + if (bl->inlined_p ()) inline_count--; bl = bl->superblock (); diff --git a/gdb/findvar.c b/gdb/findvar.c index 02d498d8c58..656f982be2d 100644 --- a/gdb/findvar.c +++ b/gdb/findvar.c @@ -533,7 +533,7 @@ get_hosting_frame (struct symbol *var, const struct block *var_block, if (frame == NULL) { if (var_block->function () - && !block_inlined_p (var_block) + && !var_block->inlined_p () && var_block->function ()->print_name ()) error (_("No frame is currently executing in block %s."), var_block->function ()->print_name ()); diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c index f02f6353c64..21431a280fa 100644 --- a/gdb/inline-frame.c +++ b/gdb/inline-frame.c @@ -228,7 +228,7 @@ inline_frame_sniffer (const struct frame_unwind *self, cur_block = frame_block; while (cur_block->superblock ()) { - if (block_inlined_p (cur_block)) + if (cur_block->inlined_p ()) depth++; else if (cur_block->function () != NULL) break; @@ -357,7 +357,7 @@ skip_inline_frames (thread_info *thread, bpstat *stop_chain) cur_block = frame_block; while (cur_block->superblock ()) { - if (block_inlined_p (cur_block)) + if (cur_block->inlined_p ()) { /* See comments in inline_frame_this_id about this use of BLOCK_ENTRY_PC. */ diff --git a/gdb/symtab.c b/gdb/symtab.c index 78f56d9d377..530de418e53 100644 --- a/gdb/symtab.c +++ b/gdb/symtab.c @@ -2206,7 +2206,7 @@ lookup_local_symbol (const char *name, return blocksym; } - if (block->function () != NULL && block_inlined_p (block)) + if (block->function () != NULL && block->inlined_p ()) break; block = block->superblock (); } @@ -3927,7 +3927,7 @@ skip_prologue_sal (struct symtab_and_line *sal) function_block = NULL; while (b != NULL) { - if (b->function () != NULL && block_inlined_p (b)) + if (b->function () != NULL && b->inlined_p ()) function_block = b; else if (b->function () != NULL) break; @@ -4023,7 +4023,7 @@ skip_prologue_using_sal (struct gdbarch *gdbarch, CORE_ADDR func_addr) bl = block_for_pc (prologue_sal.end); while (bl) { - if (block_inlined_p (bl)) + if (bl->inlined_p ()) break; if (bl->function ()) { @@ -5886,7 +5886,7 @@ default_collect_symbol_completion_matches_break_on /* Stop when we encounter an enclosing function. Do not stop for non-inlined functions - the locals of the enclosing function are in scope for a nested function. */ - if (b->function () != NULL && block_inlined_p (b)) + if (b->function () != NULL && b->inlined_p ()) break; b = b->superblock (); } -- 2.39.0