fix FP_ILOGB0 and FP_ILOGBNAN definitions to be valid for use in #if
authorRich Felker <dalias@aerifal.cx>
Wed, 22 Aug 2018 23:11:58 +0000 (19:11 -0400)
committerRich Felker <dalias@aerifal.cx>
Wed, 22 Aug 2018 23:11:58 +0000 (19:11 -0400)
commit 98c9af500125df41fdb46d7e384b00982d72493a wrongly claimed they
do not need to be valid for such usage, but the last sentence of C11
7.1.4 ΒΆ1 imposes a broad requirement that all macros specified as
integer constant expressions also need to be valid for #if.

simply write the value out explicitly. there is no value here in
pretending that the width of int will vary.

include/math.h

index 6ac91da24f94365aa06bd904fb35036d1af21ac4..fea34686001b3df8835e6067efd0de886e184d7f 100644 (file)
@@ -27,7 +27,7 @@ extern "C" {
 #define MATH_ERREXCEPT 2
 #define math_errhandling 2
 
-#define FP_ILOGBNAN (-1-(int)(((unsigned)-1)>>1))
+#define FP_ILOGBNAN (-1-0x7fffffff)
 #define FP_ILOGB0 FP_ILOGBNAN
 
 #define FP_NAN       0