From patchwork Tue Jan 18 13:03:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Wielaard X-Patchwork-Id: 50159 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 D41023857C53 for ; Tue, 18 Jan 2022 13:08:16 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 08A01385801F for ; Tue, 18 Jan 2022 13:08:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 08A01385801F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org Received: from tarox.wildebeest.org (83-87-18-245.cable.dynamic.v4.ziggo.nl [83.87.18.245]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 08BD230BE62D; Tue, 18 Jan 2022 14:08:08 +0100 (CET) Received: by tarox.wildebeest.org (Postfix, from userid 1000) id 6E0AA40006D8; Tue, 18 Jan 2022 14:08:08 +0100 (CET) From: "Mark J. Wielaard" To: libabigail@sourceware.org Subject: [PATCH] DWARF reader: use size_t for more DWARF expression length Date: Tue, 18 Jan 2022 14:03:54 +0100 Message-Id: <20220118130354.8649-1-mark@klomp.org> X-Mailer: git-send-email 2.18.4 X-Spam-Status: No, score=-10.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, 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: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , Cc: Mark Wielaard Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" From: Mark Wielaard commit 6e0d3f7 "DWARF reader: use size_t for DWARF expression length" is a partial fix for the assumption that size_t == uint64_t. This commit updates a couple more functions where this (wrong) assumption was made. * src/abg-dwarf-reader.cc (eval_last_constant_dwarf_sub_expr): Change expr_len argument type to size_t*. (op_pushes_constant_value): Change ops_len and index argument types to size_t; change next_index argument type to size_t&. (op_pushes_non_constant_value): Likewise. (op_is_arith_logic): Change expr_len and index argument types to size_t; change next_index argument type to size_t&. (op_is_control_flow): Likewise. Fixes: 16207c4af7bc ("Bug 28191 - Interpret DWARF 5 addrx locations") Signed-off-by: Mark Wielaard --- src/abg-dwarf-reader.cc | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 7ee8c04a..d8545b4c 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -363,7 +363,7 @@ die_is_at_class_scope(const read_context& ctxt, Dwarf_Die& class_scope_die); static bool eval_last_constant_dwarf_sub_expr(Dwarf_Op* expr, - uint64_t expr_len, + size_t expr_len, int64_t& value, bool& is_tls_address); @@ -7732,9 +7732,9 @@ die_location_expr(const Dwarf_Die* die, /// value onto the DEVM stack, false otherwise. static bool op_pushes_constant_value(Dwarf_Op* ops, - uint64_t ops_len, - uint64_t index, - uint64_t& next_index, + size_t ops_len, + size_t index, + size_t& next_index, dwarf_expr_eval_context& ctxt) { ABG_ASSERT(index < ops_len); @@ -7896,9 +7896,9 @@ op_pushes_constant_value(Dwarf_Op* ops, /// non-constant value onto the DEVM stack, false otherwise. static bool op_pushes_non_constant_value(Dwarf_Op* ops, - uint64_t ops_len, - uint64_t index, - uint64_t& next_index, + size_t ops_len, + size_t index, + size_t& next_index, dwarf_expr_eval_context& ctxt) { ABG_ASSERT(index < ops_len); @@ -8146,9 +8146,9 @@ op_manipulates_stack(Dwarf_Op* expr, /// arithmetic or logic operation. static bool op_is_arith_logic(Dwarf_Op* expr, - uint64_t expr_len, - uint64_t index, - uint64_t& next_index, + size_t expr_len, + size_t index, + size_t& next_index, dwarf_expr_eval_context& ctxt) { ABG_ASSERT(index < expr_len); @@ -8279,9 +8279,9 @@ op_is_arith_logic(Dwarf_Op* expr, /// control flow operation, false otherwise. static bool op_is_control_flow(Dwarf_Op* expr, - uint64_t expr_len, - uint64_t index, - uint64_t& next_index, + size_t expr_len, + size_t index, + size_t& next_index, dwarf_expr_eval_context& ctxt) { ABG_ASSERT(index < expr_len);