From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from rock.gnat.com (rock.gnat.com [205.232.38.15]) by sourceware.org (Postfix) with ESMTP id E1900388A40D for ; Sun, 15 Nov 2020 08:49:56 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E1900388A40D 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 BC76856050; Sun, 15 Nov 2020 03:49:56 -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 1A5ueQwH+EYH; Sun, 15 Nov 2020 03:49:56 -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 AD9C15604F; Sun, 15 Nov 2020 03:49:56 -0500 (EST) Received: by tron.gnat.com (Postfix, from userid 4233) id AC3E1111; Sun, 15 Nov 2020 03:49:56 -0500 (EST) From: Joel Brobecker To: gdb-patches@sourceware.org Cc: Simon Marchi , Joel Brobecker Subject: [RFA 6/6] valarith.c: Replace INIT_VAL_WITH_FIXED_POINT_VAL macro by lambda Date: Sun, 15 Nov 2020 03:49:44 -0500 Message-Id: <1605430184-81335-7-git-send-email-brobecker@adacore.com> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1605430184-81335-1-git-send-email-brobecker@adacore.com> References: <1604817017-25807-1-git-send-email-brobecker@adacore.com> <1605430184-81335-1-git-send-email-brobecker@adacore.com> X-Spam-Status: No, score=-10.2 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.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) 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: Sun, 15 Nov 2020 08:49:58 -0000 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 1c6ef2c..7be91ed 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::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::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