Author: hdu Date: Tue Jun 4 08:57:15 2013 New Revision: 1489344 URL: http://svn.apache.org/r1489344 Log: extend workaround for gcc bug 14608 to work on gcc<4.3
Modified: openoffice/trunk/main/sal/inc/sal/mathconf.h Modified: openoffice/trunk/main/sal/inc/sal/mathconf.h URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sal/inc/sal/mathconf.h?rev=1489344&r1=1489343&r2=1489344&view=diff ============================================================================== --- openoffice/trunk/main/sal/inc/sal/mathconf.h (original) +++ openoffice/trunk/main/sal/inc/sal/mathconf.h Tue Jun 4 08:57:15 2013 @@ -55,16 +55,16 @@ extern "C" { /* SAL_MATH_FINITE(d): test double d on INFINITY, NaN et al. */ -#if defined(__GNUC__) -#if defined(MACOSX) - #define SAL_MATH_FINITE(d) finite(d) -#else - #define SAL_MATH_FINITE(d) __builtin_isfinite(d) // gcc bug 14608 -#endif +#if defined(__GNUC__) // workaround gcc bug 14608 + #if (__GNUC_MINOR >= 3) // gcc>=4.3 has a builtin + #define SAL_MATH_FINITE(d) __builtin_isfinite(d) + #else + #define SAL_MATH_FINITE(d) finite(d) // fall back to pre-C99 name + #endif #elif defined(__STDC__) // isfinite() should be available in math.h according to C99,C++99,SUSv3,etc. - // unless GCC bug 14608 hits us where cmath undefines isfinite as macro - #define SAL_MATH_FINITE(d) isfinite(d) + // unless GCC bug 14608 hits us where cmath undefines isfinite() as macro + #define SAL_MATH_FINITE(d) isfinite(d) #elif defined( WNT) #define SAL_MATH_FINITE(d) _finite(d) #elif defined OS2