Revert revision 1699.

git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@2512 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/crt/math.h b/mingw-w64-headers/crt/math.h
index 665a464..722cd9b 100644
--- a/mingw-w64-headers/crt/math.h
+++ b/mingw-w64-headers/crt/math.h
@@ -98,28 +98,28 @@
   };
 #endif
 
-  double __cdecl sin(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl cos(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl tan(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl sinh(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl cosh(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl tanh(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl asin(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl acos(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl atan(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl atan2(double _Y,double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl exp(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl log(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl log10(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl pow(double _X,double _Y) __MINGW_ATTRIB_PURE;
-  double __cdecl sqrt(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl ceil(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl floor(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl fabs(double _X) __MINGW_ATTRIB_PURE;
-  double __cdecl ldexp(double _X,int _Y) __MINGW_ATTRIB_PURE;
+  double __cdecl sin(double _X);
+  double __cdecl cos(double _X);
+  double __cdecl tan(double _X);
+  double __cdecl sinh(double _X);
+  double __cdecl cosh(double _X);
+  double __cdecl tanh(double _X);
+  double __cdecl asin(double _X);
+  double __cdecl acos(double _X);
+  double __cdecl atan(double _X);
+  double __cdecl atan2(double _Y,double _X);
+  double __cdecl exp(double _X);
+  double __cdecl log(double _X);
+  double __cdecl log10(double _X);
+  double __cdecl pow(double _X,double _Y);
+  double __cdecl sqrt(double _X);
+  double __cdecl ceil(double _X);
+  double __cdecl floor(double _X);
+  double __cdecl fabs(double _X);
+  double __cdecl ldexp(double _X,int _Y);
   double __cdecl frexp(double _X,int *_Y);
   double __cdecl modf(double _X,double *_Y);
-  double __cdecl fmod(double _X,double _Y) __MINGW_ATTRIB_PURE;
+  double __cdecl fmod(double _X,double _Y);
 
   void __cdecl sincos (double __x, double *p_sin, double *p_cos);
   void __cdecl sincosl (long double __x, long double *p_sin, long double *p_cos);
@@ -149,14 +149,14 @@
   };
 #endif
 
-  _CRTIMP double __cdecl _cabs(struct _complex _ComplexA) __MINGW_ATTRIB_PURE;
-  double __cdecl _hypot(double _X,double _Y) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _j0(double _X) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _j1(double _X) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _jn(int _X,double _Y) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _y0(double _X) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _y1(double _X) __MINGW_ATTRIB_PURE;
-  _CRTIMP double __cdecl _yn(int _X,double _Y) __MINGW_ATTRIB_PURE;
+  _CRTIMP double __cdecl _cabs(struct _complex _ComplexA);
+  double __cdecl _hypot(double _X,double _Y);
+  _CRTIMP double __cdecl _j0(double _X);
+  _CRTIMP double __cdecl _j1(double _X);
+  _CRTIMP double __cdecl _jn(int _X,double _Y);
+  _CRTIMP double __cdecl _y0(double _X);
+  _CRTIMP double __cdecl _y1(double _X);
+  _CRTIMP double __cdecl _yn(int _X,double _Y);
 #ifndef _CRT_MATHERR_DEFINED
 #define _CRT_MATHERR_DEFINED
   _CRTIMP int __cdecl _matherr (struct _exception *);
@@ -184,12 +184,12 @@
 
 #if !defined(NO_OLDNAMES)
 
-_CRTIMP double __cdecl j0 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
-_CRTIMP double __cdecl j1 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
-_CRTIMP double __cdecl jn (int, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
-_CRTIMP double __cdecl y0 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
-_CRTIMP double __cdecl y1 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
-_CRTIMP double __cdecl yn (int, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE;
+_CRTIMP double __cdecl j0 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+_CRTIMP double __cdecl j1 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+_CRTIMP double __cdecl jn (int, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+_CRTIMP double __cdecl y0 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+_CRTIMP double __cdecl y1 (double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+_CRTIMP double __cdecl yn (int, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
 
 _CRTIMP double __cdecl chgsign (double);
 /*
@@ -200,8 +200,8 @@
 _CRTIMP double __cdecl scalb (double, long);
  *
  */
-  _CRTIMP int __cdecl finite (double) __MINGW_ATTRIB_PURE;
-  _CRTIMP int __cdecl fpclass (double) __MINGW_ATTRIB_PURE;
+  _CRTIMP int __cdecl finite (double);
+  _CRTIMP int __cdecl fpclass (double);
 
 #define FP_SNAN    _FPCLASS_SNAN
 #define FP_QNAN    _FPCLASS_QNAN
@@ -280,9 +280,9 @@
   converted to double, and zero when converted to float.)
 */
 
-  extern int __cdecl __fpclassifyl (long double) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __fpclassifyf (float) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __fpclassify (double) __MINGW_ATTRIB_PURE;
+  extern int __cdecl __fpclassifyl (long double);
+  extern int __cdecl __fpclassifyf (float);
+  extern int __cdecl __fpclassify (double);
 
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE int __cdecl __fpclassifyl (long double x) {
@@ -306,9 +306,9 @@
 /* We don't need to worry about truncation here:
    A NaN stays a NaN. */
 
-  extern int __cdecl __isnan (double) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __isnanf (float) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __isnanl (long double) __MINGW_ATTRIB_PURE;
+  extern int __cdecl __isnan (double);
+  extern int __cdecl __isnanf (float);
+  extern int __cdecl __isnanl (long double);
 
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE int __cdecl __isnan (double _x)
@@ -347,9 +347,9 @@
 #define isnormal(x) (fpclassify(x) == FP_NORMAL)
 
 /* 7.12.3.6 The signbit macro */
-  extern int __cdecl __signbit (double) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __signbitf (float) __MINGW_ATTRIB_PURE;
-  extern int __cdecl __signbitl (long double) __MINGW_ATTRIB_PURE;
+  extern int __cdecl __signbit (double);
+  extern int __cdecl __signbitf (float);
+  extern int __cdecl __signbitl (long double);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE int __cdecl __signbit (double x) {
     unsigned short stw;
@@ -375,79 +375,79 @@
   : __signbitl (x))
 
 /* 7.12.4 Trigonometric functions: Double in C89 */
-  extern float __cdecl sinf(float _X) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl sinl(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl sinf(float _X);
+  extern long double __cdecl sinl(long double);
 
-  extern float __cdecl cosf(float _X) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl cosl(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl cosf(float _X);
+  extern long double __cdecl cosl(long double);
 
-  extern float __cdecl tanf(float _X) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl tanl(long double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl asinf(float _X) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl asinl(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl tanf(float _X);
+  extern long double __cdecl tanl(long double);
+  extern float __cdecl asinf(float _X);
+  extern long double __cdecl asinl(long double);
 
-  extern float __cdecl acosf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl acosl (long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl acosf (float);
+  extern long double __cdecl acosl (long double);
 
-  extern float __cdecl atanf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl atanl (long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl atanf (float);
+  extern long double __cdecl atanl (long double);
 
-  extern float __cdecl atan2f (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl atan2l (long double, long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl atan2f (float, float);
+  extern long double __cdecl atan2l (long double, long double);
 
 /* 7.12.5 Hyperbolic functions: Double in C89  */
-  extern float __cdecl sinhf(float _X) __MINGW_ATTRIB_PURE;
+  extern float __cdecl sinhf(float _X);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float sinhf(float _X) { return ((float)sinh((double)_X)); }
 #endif
-  extern long double __cdecl sinhl(long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl sinhl(long double);
 
-  extern float __cdecl coshf(float _X) __MINGW_ATTRIB_PURE;
+  extern float __cdecl coshf(float _X);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float coshf(float _X) { return ((float)cosh((double)_X)); }
 #endif
-  extern long double __cdecl coshl(long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl coshl(long double);
 
-  extern float __cdecl tanhf(float _X) __MINGW_ATTRIB_PURE;
+  extern float __cdecl tanhf(float _X);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float tanhf(float _X) { return ((float)tanh((double)_X)); }
 #endif
-  extern long double __cdecl tanhl(long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl tanhl(long double);
 
 /* Inverse hyperbolic trig functions  */ 
 /* 7.12.5.1 */
-  extern double __cdecl acosh (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl acoshf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl acoshl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl acosh (double);
+  extern float __cdecl acoshf (float);
+  extern long double __cdecl acoshl (long double);
 
 /* 7.12.5.2 */
-  extern double __cdecl asinh (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl asinhf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl asinhl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl asinh (double);
+  extern float __cdecl asinhf (float);
+  extern long double __cdecl asinhl (long double);
 
 /* 7.12.5.3 */
-  extern double __cdecl atanh (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl atanhf  (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl atanhl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl atanh (double);
+  extern float __cdecl atanhf  (float);
+  extern long double __cdecl atanhl (long double);
 
 /* Exponentials and logarithms  */
 /* 7.12.6.1 Double in C89 */
-  extern float __cdecl expf(float _X) __MINGW_ATTRIB_PURE;
+  extern float __cdecl expf(float _X);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float expf(float _X) { return ((float)exp((double)_X)); }
 #endif
-  extern long double __cdecl expl(long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl expl(long double);
 
 /* 7.12.6.2 */
-  extern double __cdecl exp2(double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl exp2f(float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl exp2l(long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl exp2(double);
+  extern float __cdecl exp2f(float);
+  extern long double __cdecl exp2l(long double);
 
 /* 7.12.6.3 The expm1 functions */
 /* TODO: These could be inlined */
-  extern double __cdecl expm1(double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl expm1f(float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl expm1l(long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl expm1(double);
+  extern float __cdecl expm1f(float);
+  extern long double __cdecl expm1l(long double);
 
 /* 7.12.6.4 Double in C89 */
   extern float frexpf(float _X,int *_Y);
@@ -459,39 +459,39 @@
 /* 7.12.6.5 */
 #define FP_ILOGB0 ((int)0x80000000)
 #define FP_ILOGBNAN ((int)0x80000000)
-  extern int __cdecl ilogb (double) __MINGW_ATTRIB_PURE;
-  extern int __cdecl ilogbf (float) __MINGW_ATTRIB_PURE;
-  extern int __cdecl ilogbl (long double) __MINGW_ATTRIB_PURE;
+  extern int __cdecl ilogb (double);
+  extern int __cdecl ilogbf (float);
+  extern int __cdecl ilogbl (long double);
 
 /* 7.12.6.6  Double in C89 */
-  extern float __cdecl ldexpf(float _X,int _Y) __MINGW_ATTRIB_PURE;
+  extern float __cdecl ldexpf(float _X,int _Y);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float __cdecl ldexpf (float x, int expn) { return (float) ldexp ((double)x, expn); }
 #endif
-  extern long double __cdecl ldexpl (long double, int) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl ldexpl (long double, int);
 
 /* 7.12.6.7 Double in C89 */
-  extern float __cdecl logf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl logl(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl logf (float);
+  extern long double __cdecl logl(long double);
 
 /* 7.12.6.8 Double in C89 */
-  extern float __cdecl log10f (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl log10l(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl log10f (float);
+  extern long double __cdecl log10l(long double);
 
 /* 7.12.6.9 */
-  extern double __cdecl log1p(double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl log1pf(float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl log1pl(long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl log1p(double);
+  extern float __cdecl log1pf(float);
+  extern long double __cdecl log1pl(long double);
 
 /* 7.12.6.10 */
-  extern double __cdecl log2 (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl log2f (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl log2l (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl log2 (double);
+  extern float __cdecl log2f (float);
+  extern long double __cdecl log2l (long double);
 
 /* 7.12.6.11 */
-  extern double __cdecl logb (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl logbf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl logbl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl logb (double);
+  extern float __cdecl logbf (float);
+  extern long double __cdecl logbl (long double);
 
 /* Inline versions.  GCC-4.0+ can do a better fast-math optimization
    with __builtins. */
@@ -566,56 +566,56 @@
 #endif
 #endif
 /* 7.12.7.3  */
-  extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_PURE; /* in libmoldname.a */
-  extern float __cdecl hypotf (float x, float y) __MINGW_ATTRIB_PURE;
+  extern double __cdecl hypot (double, double) __MINGW_ATTRIB_DEPRECATED_MSVC2005; /* in libmoldname.a */
+  extern float __cdecl hypotf (float x, float y);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float __cdecl hypotf (float x, float y) { return (float) hypot ((double)x, (double)y);}
 #endif
-  extern long double __cdecl hypotl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl hypotl (long double, long double);
 
 /* 7.12.7.4 The pow functions. Double in C89 */
-  extern float __cdecl powf(float _X,float _Y) __MINGW_ATTRIB_PURE;
+  extern float __cdecl powf(float _X,float _Y);
 #ifndef __CRT__NO_INLINE
   __CRT_INLINE float powf(float _X,float _Y) { return ((float)pow((double)_X,(double)_Y)); }
 #endif
-  extern long double __cdecl powl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern long double __cdecl powl (long double, long double);
 
 /* 7.12.7.5 The sqrt functions. Double in C89. */
-  extern float __cdecl sqrtf (float) __MINGW_ATTRIB_PURE;
-  extern long double sqrtl(long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl sqrtf (float);
+  extern long double sqrtl(long double);
 
 /* 7.12.8.1 The erf functions  */
-  extern double __cdecl erf (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl erff (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl erfl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl erf (double);
+  extern float __cdecl erff (float);
+  extern long double __cdecl erfl (long double);
 
 /* 7.12.8.2 The erfc functions  */
-  extern double __cdecl erfc (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl erfcf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl erfcl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl erfc (double);
+  extern float __cdecl erfcf (float);
+  extern long double __cdecl erfcl (long double);
 
 /* 7.12.8.3 The lgamma functions */
-  extern double __cdecl lgamma (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl lgammaf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl lgammal (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl lgamma (double);
+  extern float __cdecl lgammaf (float);
+  extern long double __cdecl lgammal (long double);
 
 /* 7.12.8.4 The tgamma functions */
-  extern double __cdecl tgamma (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl tgammaf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl tgammal (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl tgamma (double);
+  extern float __cdecl tgammaf (float);
+  extern long double __cdecl tgammal (long double);
 
 /* 7.12.9.1 Double in C89 */
-  extern float __cdecl ceilf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl ceill (long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl ceilf (float);
+  extern long double __cdecl ceill (long double);
 
 /* 7.12.9.2 Double in C89 */
-  extern float __cdecl floorf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl floorl (long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl floorf (float);
+  extern long double __cdecl floorl (long double);
 
 /* 7.12.9.3 */
-  extern double __cdecl nearbyint ( double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl nearbyintf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl nearbyintl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl nearbyint ( double);
+  extern float __cdecl nearbyintf (float);
+  extern long double __cdecl nearbyintl (long double);
 
 /* 7.12.9.4 */
 /* round, using fpu control word settings */
@@ -710,42 +710,42 @@
 
 /* 7.12.9.6 */
 /* round away from zero, regardless of fpu control word settings */
-  extern double __cdecl round (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl roundf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl roundl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl round (double);
+  extern float __cdecl roundf (float);
+  extern long double __cdecl roundl (long double);
 
 /* 7.12.9.7  */
-  extern long __cdecl lround (double) __MINGW_ATTRIB_PURE;
-  extern long __cdecl lroundf (float) __MINGW_ATTRIB_PURE;
-  extern long __cdecl lroundl (long double) __MINGW_ATTRIB_PURE;
-  __MINGW_EXTENSION long long __cdecl llround (double) __MINGW_ATTRIB_PURE;
-  __MINGW_EXTENSION long long __cdecl llroundf (float) __MINGW_ATTRIB_PURE;
-  __MINGW_EXTENSION long long __cdecl llroundl (long double) __MINGW_ATTRIB_PURE;
+  extern long __cdecl lround (double);
+  extern long __cdecl lroundf (float);
+  extern long __cdecl lroundl (long double);
+  __MINGW_EXTENSION long long __cdecl llround (double);
+  __MINGW_EXTENSION long long __cdecl llroundf (float);
+  __MINGW_EXTENSION long long __cdecl llroundl (long double);
   
 /* 7.12.9.8 */
 /* round towards zero, regardless of fpu control word settings */
-  extern double __cdecl trunc (double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl truncf (float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl truncl (long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl trunc (double);
+  extern float __cdecl truncf (float);
+  extern long double __cdecl truncl (long double);
 
 /* 7.12.10.1 Double in C89 */
-  extern float __cdecl fmodf (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl fmodl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern float __cdecl fmodf (float, float);
+  extern long double __cdecl fmodl (long double, long double);
 
 /* 7.12.10.2 */ 
-  extern double __cdecl remainder (double, double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl remainderf (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl remainderl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl remainder (double, double);
+  extern float __cdecl remainderf (float, float);
+  extern long double __cdecl remainderl (long double, long double);
 
 /* 7.12.10.3 */
-  extern double __cdecl remquo(double, double, int *) __MINGW_ATTRIB_PURE;
-  extern float __cdecl remquof(float, float, int *) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl remquol(long double, long double, int *) __MINGW_ATTRIB_PURE;
+  extern double __cdecl remquo(double, double, int *);
+  extern float __cdecl remquof(float, float, int *);
+  extern long double __cdecl remquol(long double, long double, int *);
 
 /* 7.12.11.1 */
-  extern double __cdecl copysign (double, double) __MINGW_ATTRIB_PURE; /* in libmoldname.a */
-  extern float __cdecl copysignf (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl copysignl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl copysign (double, double); /* in libmoldname.a */
+  extern float __cdecl copysignf (float, float);
+  extern long double __cdecl copysignl (long double, long double);
 
 /* 7.12.11.2 Return a NaN */
   extern double __cdecl nan(const char *tagp);
@@ -770,9 +770,9 @@
 
 /* 7.12.12.1 */
 /*  x > y ? (x - y) : 0.0  */
-  extern double __cdecl fdim (double x, double y) __MINGW_ATTRIB_PURE;
-  extern float __cdecl fdimf (float x, float y) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl fdiml (long double x, long double y) __MINGW_ATTRIB_PURE;
+  extern double __cdecl fdim (double x, double y);
+  extern float __cdecl fdimf (float x, float y);
+  extern long double __cdecl fdiml (long double x, long double y);
 
 /* fmax and fmin.
    NaN arguments are treated as missing data: if one argument is a NaN
@@ -780,20 +780,20 @@
    value. */
 
 /* 7.12.12.2 */
-  extern double __cdecl fmax  (double, double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl fmaxf (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl fmaxl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl fmax  (double, double);
+  extern float __cdecl fmaxf (float, float);
+  extern long double __cdecl fmaxl (long double, long double);
 
 /* 7.12.12.3 */
-  extern double __cdecl fmin (double, double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl fminf (float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl fminl (long double, long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl fmin (double, double);
+  extern float __cdecl fminf (float, float);
+  extern long double __cdecl fminl (long double, long double);
 
 /* 7.12.13.1 */
 /* return x * y + z as a ternary op */ 
-  extern double __cdecl fma (double, double, double) __MINGW_ATTRIB_PURE;
-  extern float __cdecl fmaf (float, float, float) __MINGW_ATTRIB_PURE;
-  extern long double __cdecl fmal (long double, long double, long double) __MINGW_ATTRIB_PURE;
+  extern double __cdecl fma (double, double, double);
+  extern float __cdecl fmaf (float, float, float);
+  extern long double __cdecl fmal (long double, long double, long double);
 
 /* 7.12.14 */
 /* 
@@ -838,17 +838,17 @@
 #endif /* __NO_ISOCEXT */
 
 #if defined(_X86_) && !defined(__x86_64)
-  _CRTIMP float __cdecl _hypotf(float _X,float _Y) __MINGW_ATTRIB_PURE;
+  _CRTIMP float __cdecl _hypotf(float _X,float _Y);
 #endif
 
 #if !defined(__ia64__)
-   _CRTIMP float __cdecl _copysignf (float _Number,float _Sign) __MINGW_ATTRIB_PURE;
-   _CRTIMP float __cdecl _chgsignf (float _X) __MINGW_ATTRIB_PURE;
-   _CRTIMP float __cdecl _logbf(float _X) __MINGW_ATTRIB_PURE;
-   _CRTIMP float __cdecl _nextafterf(float _X,float _Y) __MINGW_ATTRIB_PURE;
-   _CRTIMP int __cdecl _finitef(float _X) __MINGW_ATTRIB_PURE;
-   _CRTIMP int __cdecl _isnanf(float _X) __MINGW_ATTRIB_PURE;
-   _CRTIMP int __cdecl _fpclassf(float _X) __MINGW_ATTRIB_PURE;
+   _CRTIMP float __cdecl _copysignf (float _Number,float _Sign);
+   _CRTIMP float __cdecl _chgsignf (float _X);
+   _CRTIMP float __cdecl _logbf(float _X);
+   _CRTIMP float __cdecl _nextafterf(float _X,float _Y);
+   _CRTIMP int __cdecl _finitef(float _X);
+   _CRTIMP int __cdecl _isnanf(float _X);
+   _CRTIMP int __cdecl _fpclassf(float _X);
 #endif
 
 #ifdef _SIGN_DEFINED