From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id 0KOvHRZIul/UJQAAWB0awg (envelope-from ) for ; Sun, 22 Nov 2020 06:14:30 -0500 Received: by simark.ca (Postfix, from userid 112) id 296BB1F08B; Sun, 22 Nov 2020 06:14:29 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on simark.ca X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=MAILING_LIST_MULTI,RDNS_NONE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from sourceware.org (unknown [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 0D91E1E58F for ; Sun, 22 Nov 2020 06:14:29 -0500 (EST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id AF08B3971C49; Sun, 22 Nov 2020 11:14:28 +0000 (GMT) Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTP id 70FA03971C4D for ; Sun, 22 Nov 2020 11:14:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 70FA03971C4D Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=brobecke@adacore.com Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id 510571168AF; Sun, 22 Nov 2020 06:14:26 -0500 (EST) X-Virus-Scanned: Debian amavisd-new at gnat.com Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id nVF4y6W7oi1H; Sun, 22 Nov 2020 06:14:26 -0500 (EST) Received: from tron.gnat.com (tron.gnat.com [IPv6:2620:20:4000:0:46a8:42ff:fe0e:e294]) by rock.gnat.com (Postfix) with ESMTP id 402751165D2; Sun, 22 Nov 2020 06:14:26 -0500 (EST) Received: by tron.gnat.com (Postfix, from userid 4233) id 3F320149; Sun, 22 Nov 2020 06:14:26 -0500 (EST) From: Joel Brobecker To: gdb-patches@sourceware.org Subject: [RFA v2 6/6] valarith.c: Replace INIT_VAL_WITH_FIXED_POINT_VAL macro by lambda Date: Sun, 22 Nov 2020 06:14:06 -0500 Message-Id: <1606043646-140022-7-git-send-email-brobecker@adacore.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1606043646-140022-1-git-send-email-brobecker@adacore.com> References: <1605430184-81335-1-git-send-email-brobecker@adacore.com> <1606043646-140022-1-git-send-email-brobecker@adacore.com> 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: , Cc: Simon Marchi , Joel Brobecker Errors-To: gdb-patches-bounces@sourceware.org Sender: "Gdb-patches" gdb/ChangeLog (Simon Marchi ): * valarith.c (fixed_point_binop): Replace the INIT_VAL_WITH_FIXED_POINT_VAL macro by a lambda. Update all users accordingly. --- gdb/valarith.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/gdb/valarith.c b/gdb/valarith.c index 29ac46b..5b2bf18 100644 --- a/gdb/valarith.c +++ b/gdb/valarith.c @@ -917,44 +917,48 @@ fixed_point_binop (struct value *arg1, struct value *arg2, enum exp_opcode op) type_byte_order (type2), type2->is_unsigned (), type2->fixed_point_scaling_factor ()); -#define INIT_VAL_WITH_FIXED_POINT_VAL(RESULT) \ - do { \ - val = allocate_value (type1); \ - (RESULT).write_fixed_point \ - (gdb::make_array_view (value_contents_raw (val), \ - TYPE_LENGTH (type1)), \ - type_byte_order (type1), type1->is_unsigned (), \ - type1->fixed_point_scaling_factor ()); \ - } while (0) + auto fixed_point_to_value = [type1] (const gdb_mpq &fp) + { + value *fp_val = allocate_value (type1); + + fp.write_fixed_point + (gdb::make_array_view (value_contents_raw (fp_val), + TYPE_LENGTH (type1)), + type_byte_order (type1), + type1->is_unsigned (), + type1->fixed_point_scaling_factor ()); + + return fp_val; + }; switch (op) { case BINOP_ADD: mpq_add (res.val, v1.val, v2.val); - INIT_VAL_WITH_FIXED_POINT_VAL (res); + val = fixed_point_to_value (res); break; case BINOP_SUB: mpq_sub (res.val, v1.val, v2.val); - INIT_VAL_WITH_FIXED_POINT_VAL (res); + val = fixed_point_to_value (res); break; case BINOP_MIN: - INIT_VAL_WITH_FIXED_POINT_VAL (mpq_cmp (v1.val, v2.val) < 0 ? v1 : v2); + val = fixed_point_to_value (mpq_cmp (v1.val, v2.val) < 0 ? v1 : v2); break; case BINOP_MAX: - INIT_VAL_WITH_FIXED_POINT_VAL (mpq_cmp (v1.val, v2.val) > 0 ? v1 : v2); + val = fixed_point_to_value (mpq_cmp (v1.val, v2.val) > 0 ? v1 : v2); break; case BINOP_MUL: mpq_mul (res.val, v1.val, v2.val); - INIT_VAL_WITH_FIXED_POINT_VAL (res); + val = fixed_point_to_value (res); break; case BINOP_DIV: mpq_div (res.val, v1.val, v2.val); - INIT_VAL_WITH_FIXED_POINT_VAL (res); + val = fixed_point_to_value (res); break; case BINOP_EQUAL: -- 2.1.4