From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1791) id 7C0AF3858284; Tue, 30 Aug 2022 11:47:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7C0AF3858284 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1661860054; bh=S/OxTfXrtuWyADUor9k58JL/edzgaoFvr8cCs04NFE4=; h=From:To:Subject:Date:From; b=c8szcYhGInBvZDbSD6QVWNE0q8z8P0z7EK5hWkN7DmrDGd5dVRFTXHF7q1aDnp9T0 ojK+khDX9zVqmqXyfPB/TFlop0mdQmy1epLqeF29UcXzwAmbYhGgHsMStYhMzZZKRQ Pmp8XvIykYf30LXZGEDoG4177E/DHHUfDFKJ9PeM= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Adhemerval Zanella To: glibc-cvs@sourceware.org Subject: [glibc] stdlib: Fix macro expansion producing 'defined' has undefined behavior X-Act-Checkin: glibc X-Git-Author: Adhemerval Zanella X-Git-Refname: refs/heads/master X-Git-Oldrev: e57d8fc97b90127de4ed3e3a9cdf663667580935 X-Git-Newrev: 6c4ee1aba17f1e71b9ec856479260de9d362fdb6 Message-Id: <20220830114734.7C0AF3858284@sourceware.org> Date: Tue, 30 Aug 2022 11:47:34 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=6c4ee1aba17f1e71b9ec856479260de9d362fdb6 commit 6c4ee1aba17f1e71b9ec856479260de9d362fdb6 Author: Adhemerval Zanella Date: Wed Mar 9 15:36:53 2022 -0300 stdlib: Fix macro expansion producing 'defined' has undefined behavior The FPIOCONST_HAVE_EXTENDED_RANGE is defined as: #define FPIOCONST_HAVE_EXTENDED_RANGE \ ((!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \ || __HAVE_DISTINCT_FLOAT128) Which is undefined behavior accordingly to C Standard (Preprocessing directives, p4). Checked on x86_64-linux-gnu. Diff: --- stdlib/fpioconst.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/stdlib/fpioconst.h b/stdlib/fpioconst.h index 1e01999941..3e185f5751 100644 --- a/stdlib/fpioconst.h +++ b/stdlib/fpioconst.h @@ -52,9 +52,12 @@ - LDBL_MIN_EXP + 2)). When _Float128 is enabled in libm and it is ABI-distinct from long double (e.g. on powerpc64le), we also need powers of 10 up to floor (log_2 (FLT128_MANT_DIG - FLT128_MIN_EXP + 2)). */ -#define FPIOCONST_HAVE_EXTENDED_RANGE \ - ((!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \ - || __HAVE_DISTINCT_FLOAT128) +#if (!defined __NO_LONG_DOUBLE_MATH && __LDBL_MAX_EXP__ > 1024) \ + || __HAVE_DISTINCT_FLOAT128 +# define FPIOCONST_HAVE_EXTENDED_RANGE 1 +#else +# define FPIOCONST_HAVE_EXTENDED_RANGE 0 +#endif #if FPIOCONST_HAVE_EXTENDED_RANGE # define FPIOCONST_POW10_ARRAY_SIZE 15