From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id kT+JBsuwsWlmCCQAWB0awg (envelope-from ) for ; Wed, 11 Mar 2026 14:13:31 -0400 Received: by simark.ca (Postfix, from userid 112) id 14C111E0DD; Wed, 11 Mar 2026 14:13:31 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.3 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H2, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 5CB9C1E089 for ; Wed, 11 Mar 2026 14:13:30 -0400 (EDT) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id E5B734BB592C for ; Wed, 11 Mar 2026 18:13:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E5B734BB592C Received: from simark.ca (simark.ca [158.69.221.121]) by sourceware.org (Postfix) with ESMTPS id 2E5284BB3BEE for ; Wed, 11 Mar 2026 18:12:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2E5284BB3BEE Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=efficios.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=efficios.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 2E5284BB3BEE Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=158.69.221.121 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773252752; cv=none; b=WkGtjSZ4I94uxjC/QzThuIi9zG9VYEWsLK+g2DaJIoHJhfVTH69rUc4XuottU+9PJ4pZ8cvnnfIwd3j9wplC6Am9V7sR5K2EUPGVYC2iJzKBwS0UDMoVeK0MlC9XscPGWH6y35aqmdI8eHUqzZTgW75yLcFgEUa2wTJw4C+ZV50= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1773252752; c=relaxed/simple; bh=0YUHJgIYeTyFQIPOio3rWSWs6AHkGXz6rpsQw0Sgyo8=; h=From:To:Subject:Date:Message-ID:MIME-Version; b=kbekhpBycZZ1kC8QJQmmY74aXEEOk0Yt9aMng1Opan0QBEDQ0GKcEaVu2bv0hJ5hBJdF96s/k9qJyNnmSbmgUAi3k+vdPsuUe7TjLNOS0VAqbNLYZA9ablcwbe5nWHMrQ0RwPFNLmt0Lt+bjr7vvYH/0Qii1LRexL8QK0rQDCvo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2E5284BB3BEE Received: by simark.ca (Postfix) id B3FFA1E0EF; Wed, 11 Mar 2026 14:12:29 -0400 (EDT) From: Simon Marchi To: gdb-patches@sourceware.org Cc: Simon Marchi Subject: [PATCH 22/23] gdb/dwarf: change dwarf_block_to_sp_offset to return bool Date: Wed, 11 Mar 2026 14:05:47 -0400 Message-ID: <20260311180825.720803-23-simon.marchi@efficios.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260311180825.720803-1-simon.marchi@efficios.com> References: <20260311180825.720803-1-simon.marchi@efficios.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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~public-inbox=simark.ca@sourceware.org Change-Id: I7607e0b1cbbbb0c7be0ec309d7d936154a910554 --- gdb/dwarf2/expr.c | 25 ++++++++++++------------- gdb/dwarf2/expr.h | 10 +++++++--- gdb/dwarf2/read.c | 2 +- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/gdb/dwarf2/expr.c b/gdb/dwarf2/expr.c index a5ea43e0bcc4..217f494ebd3c 100644 --- a/gdb/dwarf2/expr.c +++ b/gdb/dwarf2/expr.c @@ -1493,11 +1493,9 @@ dwarf_block_to_fb_offset (const gdb_byte *buf, const gdb_byte *buf_end, return 1; } -/* If = DW_OP_breg0 && *buf <= DW_OP_breg31) { dwarf_reg = *buf - DW_OP_breg0; @@ -1514,25 +1513,25 @@ dwarf_block_to_sp_offset (struct gdbarch *gdbarch, const gdb_byte *buf, else { if (*buf != DW_OP_bregx) - return 0; + return false; + buf++; buf = gdb_read_uleb128 (buf, buf_end, &dwarf_reg); if (buf == NULL) - return 0; + return false; } if (dwarf_reg_to_regnum (gdbarch, dwarf_reg) != gdbarch_sp_regnum (gdbarch)) - return 0; + return false; buf = gdb_read_sleb128 (buf, buf_end, &sp_offset); if (buf == NULL) - return 0; - *sp_offset_return = sp_offset; - if (buf != buf_end || sp_offset != (LONGEST) *sp_offset_return) - return 0; + return false; - return 1; + *sp_offset_return = sp_offset; + + return buf == buf_end && sp_offset == (LONGEST) *sp_offset_return; } /* Return true if, for an expr evaluated in the context of FRAME, we can diff --git a/gdb/dwarf2/expr.h b/gdb/dwarf2/expr.h index e25492f29a7c..ad841658f632 100644 --- a/gdb/dwarf2/expr.h +++ b/gdb/dwarf2/expr.h @@ -278,9 +278,13 @@ int dwarf_block_to_dwarf_reg_deref (const gdb_byte *buf, int dwarf_block_to_fb_offset (const gdb_byte *buf, const gdb_byte *buf_end, CORE_ADDR *fb_offset_return); -int dwarf_block_to_sp_offset (struct gdbarch *gdbarch, const gdb_byte *buf, - const gdb_byte *buf_end, - CORE_ADDR *sp_offset_return); +/* If u.dwarf_reg != -1) parameter->kind = CALL_SITE_PARAMETER_DWARF_REG; else if (dwarf_block_to_sp_offset (gdbarch, block->data, - &block->data[block->size], + &block->data[block->size], ¶meter->u.fb_offset)) parameter->kind = CALL_SITE_PARAMETER_FB_OFFSET; else -- 2.53.0