Unified · Split
| @@ -2128,6 +2128,15 @@ float strtof(const char *nptr, char **endptr); · 2127 unmodified lines | |||
| 2128 | LONG_DOUBLE strtold(const char *nptr, char **endptr); | 2128 | LONG_DOUBLE strtold(const char *nptr, char **endptr); |
| 2129 | #endif | 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 | #define FTEST(prefix, typename, type, fmt)\ | 2140 | #define FTEST(prefix, typename, type, fmt)\ |
| 2132 | void prefix ## cmp(type a, type b)\ | 2141 | void prefix ## cmp(type a, type b)\ |
| 2133 | {\ | 2142 | {\ |
| @@ -2243,7 +2252,7 @@ void prefix ## test(void)\ · 109 unmodified lines | |||
| 2243 | prefix ## fcast(-2334.6);\ | 2252 | prefix ## fcast(-2334.6);\ |
| 2244 | prefix ## call();\ | 2253 | prefix ## call();\ |
| 2245 | prefix ## signed_zeros();\ | 2254 | prefix ## signed_zeros();\ |
| 2246 | prefix ## nan();\ | 2255 | if (enable_nan_test) prefix ## nan();\ |
| 2247 | } | 2256 | } |
| 2248 | 2257 | ||
| 2249 | FTEST(f, float, float, "%f") | 2258 | FTEST(f, float, float, "%f") |