aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2021-06-25 18:42:38 +0000
committerDimitry Andric <dim@FreeBSD.org>2021-06-25 18:45:36 +0000
commit450f3e55bdad40578c58653134408b7bc451b8b9 (patch)
treee4d29f2fc9859c2e01d8f2e549c7de043a1d0e0f
parent856f1fd6c3607e1b77c97ca6830f230b876d2bce (diff)
downloadsrc-450f3e55bdad40578c58653134408b7bc451b8b9.tar.gz
src-450f3e55bdad40578c58653134408b7bc451b8b9.zip
Work around bogus old gcc "initializer element is not constant" error
After df3b437c1e073eb83e9a93af1c417f3ee8d0de3b, older gcc's such as 4.2.1 (still used on earlier branches for e.g. mips and powerpc) and 6.3.0 (still used for some cross-builds) started throwing bogus errors like: In file included from /workspace/src/lib/msun/src/s_llround.c:11:0: /workspace/src/lib/msun/src/s_lround.c:54:31: error: initializer element is not constant static const type dtype_min = type_min - 0.5; ^~~~~~~~ /workspace/src/lib/msun/src/s_lround.c:55:31: error: initializer element is not constant static const type dtype_max = type_max + 0.5; ^~~~~~~~ Since 'type_min' and 'type_max' are constants declared just above these lines this error is nonsensical, but older gcc's are not smart enough. Work around the error by reusing the (type)DTYPE_MIN and (type)DTYPE_MAX macros, so I can MFC this right away, unbreaking a few stable builds. (cherry picked from commit 0bcd49c13ada1461bcea85e0466811ddcb290b5e)
-rw-r--r--lib/msun/src/s_lround.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/msun/src/s_lround.c b/lib/msun/src/s_lround.c
index c4d305401ac8..1dd8e697f703 100644
--- a/lib/msun/src/s_lround.c
+++ b/lib/msun/src/s_lround.c
@@ -51,8 +51,8 @@ __FBSDID("$FreeBSD$");
*/
static const type type_min = (type)DTYPE_MIN;
static const type type_max = (type)DTYPE_MAX;
-static const type dtype_min = type_min - 0.5;
-static const type dtype_max = type_max + 0.5;
+static const type dtype_min = (type)DTYPE_MIN - 0.5;
+static const type dtype_max = (type)DTYPE_MAX + 0.5;
#define INRANGE(x) (dtype_max - type_max != 0.5 || \
((x) > dtype_min && (x) < dtype_max))