From 3e4b7269c0d8880f1c1dbed38320e1673470288a Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Fri, 4 May 2018 19:40:18 +0100 Subject: [PATCH] Enhance SWIG_isfinite for older standards: C++03/C++98/C89 Fixes testcase overload_numeric with -std=c++98 (clang and gcc 6 and later) Issue #1239 --- Lib/typemaps/fragments.swg | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Lib/typemaps/fragments.swg b/Lib/typemaps/fragments.swg index 60292c350..e83f415c4 100644 --- a/Lib/typemaps/fragments.swg +++ b/Lib/typemaps/fragments.swg @@ -118,6 +118,12 @@ inline int SWIG_isfinite_func(T x) { return isfinite(x); } # define SWIG_isfinite(X) (SWIG_isfinite_func(X)) +# elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)) +# define SWIG_isfinite(X) (__builtin_isfinite(X)) +# elif defined(__clang__) && defined(__has_builtin) +# if __has_builtin(__builtin_isfinite) +# define SWIG_isfinite(X) (__builtin_isfinite(X)) +# endif # elif defined(_MSC_VER) # define SWIG_isfinite(X) (_finite(X)) # elif defined(__sun) && defined(__SVR4)