diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 25ce0db75..a45b1e850 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,7 @@ +2008-05-15 Ramiro Polla + + * include/stdlib.h: Fix strtod under C++. + 2008-05-06 Ramiro Polla * mingwex/gdtoa/strtodnrp.c: Remove alias from strtod to __strtod. diff --git a/winsup/mingw/include/stdlib.h b/winsup/mingw/include/stdlib.h index 693185c07..07f6de535 100644 --- a/winsup/mingw/include/stdlib.h +++ b/winsup/mingw/include/stdlib.h @@ -309,7 +309,13 @@ _CRTIMP long __cdecl __MINGW_NOTHROW _wtol (const wchar_t *); #endif #if !defined __NO_ISOCEXT /* in libmingwex.a */ double __cdecl __MINGW_NOTHROW __strtod (const char*, char**); -#define strtod __strtod +#ifdef __cplusplus +/* We require a function with external linkage. */ +#else +static +#endif /* Not __cplusplus */ +inline double __cdecl __MINGW_NOTHROW strtod (const char* __restrict__ __nptr, char** __restrict__ __endptr) +{ return __strtod(__nptr, __endptr); } float __cdecl __MINGW_NOTHROW strtof (const char * __restrict__, char ** __restrict__); long double __cdecl __MINGW_NOTHROW strtold (const char * __restrict__, char ** __restrict__); #else