Unified · Split
| @@ -2128,6 +2128,15 @@ float strtof(const char *nptr, char **endptr); · 2127 unmodified lines | ||
| 2128 | 2128 | LONG_DOUBLE strtold(const char *nptr, char **endptr); |
| 2129 | 2129 | #endif |
| 2130 | 2130 | |
| 2131 | +#if CC_NAME == CC_clang | |
| 2132 | +/* In clang 0.0/0.0 is nan and not -nan. | |
| 2133 | + Also some older clang version do v=-v | |
| 2134 | + as v = -0 - v */ | |
| 2135 | +static char enable_nan_test = 0; | |
| 2136 | +#else | |
| 2137 | +static char enable_nan_test = 1; | |
| 2138 | +#endif | |
| 2139 | + | |
| 2131 | 2140 | #define FTEST(prefix, typename, type, fmt)\ |
| 2132 | 2141 | void prefix ## cmp(type a, type b)\ |
| 2133 | 2142 | {\ |
| @@ -2243,7 +2252,7 @@ void prefix ## test(void)\ · 109 unmodified lines | ||
| 2243 | 2252 | prefix ## fcast(-2334.6);\ |
| 2244 | 2253 | prefix ## call();\ |
| 2245 | 2254 | prefix ## signed_zeros();\ |
| 2246 | − prefix ## nan();\ | |
| 2255 | + if (enable_nan_test) prefix ## nan();\ | |
| 2247 | 2256 | } |
| 2248 | 2257 | |
| 2249 | 2258 | FTEST(f, float, float, "%f") |