From 04be8e84db1cf4f8b2a7bc7679eda4336da75d43 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Fri, 27 Aug 2021 10:52:02 +0900 Subject: Use C99-defined macros to classify a floating-point number --- include/ruby/missing.h | 36 +++--------------------------------- include/ruby/win32.h | 10 ---------- 2 files changed, 3 insertions(+), 43 deletions(-) (limited to 'include/ruby') diff --git a/include/ruby/missing.h b/include/ruby/missing.h index 7d551248ae..a4a2bbb8ee 100644 --- a/include/ruby/missing.h +++ b/include/ruby/missing.h @@ -92,10 +92,6 @@ RUBY_EXTERN int eaccess(const char*, int); RUBY_EXTERN double round(double); /* numeric.c */ #endif -#ifndef HAVE_FINITE -RUBY_EXTERN int finite(double); -#endif - #ifndef HAVE_FLOCK RUBY_EXTERN int flock(int, int); #endif @@ -152,35 +148,9 @@ RUBY_EXTERN const union bytesequence4_or_float rb_nan; # define HUGE_VAL ((double)INFINITY) #endif -#if defined(isinf) -# /* Take that. */ -#elif defined(HAVE_ISINF) -# /* Take that. */ -#elif defined(HAVE_FINITE) && defined(HAVE_ISNAN) -# define isinf(x) (!finite(x) && !isnan(x)) -#elif defined(__cplusplus) && __cplusplus >= 201103L -# // must include constexpr bool isinf(double); -#else -RUBY_EXTERN int isinf(double); -#endif - -#if defined(isnan) -# /* Take that. */ -#elif defined(HAVE_ISNAN) -# /* Take that. */ -#elif defined(__cplusplus) && __cplusplus >= 201103L -# // must include constexpr bool isnan(double); -#else -RUBY_EXTERN int isnan(double); -#endif - -#if defined(isfinite) -# /* Take that. */ -#elif defined(HAVE_ISFINITE) -# /* Take that. */ -#else -# define HAVE_ISFINITE 1 -# define isfinite(x) finite(x) +#ifndef HAVE_FINITE +# define HAVE_FINITE 1 +# define finite(x) isfinite(x) #endif #ifndef HAVE_NAN diff --git a/include/ruby/win32.h b/include/ruby/win32.h index 4978655e3c..c8ae599f2f 100644 --- a/include/ruby/win32.h +++ b/include/ruby/win32.h @@ -343,14 +343,6 @@ rb_infinity_float(void) #endif #if !defined __MINGW32__ || defined __NO_ISOCEXT -#ifndef isnan -#define isnan(x) _isnan(x) -#endif -static inline int -finite(double x) -{ - return _finite(x); -} #ifndef copysign #define copysign(a, b) _copysign(a, b) #endif @@ -359,8 +351,6 @@ scalb(double a, long b) { return _scalb(a, b); } -#else -__declspec(dllimport) extern int finite(double); #endif #if !defined S_IFIFO && defined _S_IFIFO -- cgit v1.2.3