Improve workaround for MinGW math.h bug in strict ANSI mode.
Declare _hypot() function globally, predefining __NO_INLINE__ in wx/math.h is not enough as <math.h> is also included from some other standard headers, e.g. <algorithm>, and including them results in the same bug as in wx/math.h (i.e. https://sourceforge.net/p/mingw/bugs/2250/).
This commit is contained in:
@@ -15,17 +15,6 @@
|
|||||||
|
|
||||||
#include "wx/defs.h"
|
#include "wx/defs.h"
|
||||||
|
|
||||||
#ifdef wxNEEDS_STRICT_ANSI_WORKAROUNDS
|
|
||||||
/*
|
|
||||||
In addition to declaring _finite() ourselves below, we also must work
|
|
||||||
around a compilation error in MinGW standard header itself, see
|
|
||||||
https://sourceforge.net/p/mingw/bugs/2250/
|
|
||||||
*/
|
|
||||||
#ifndef __NO_INLINE__
|
|
||||||
#define __NO_INLINE__
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#ifndef M_PI
|
#ifndef M_PI
|
||||||
|
@@ -151,6 +151,15 @@
|
|||||||
*/
|
*/
|
||||||
#define wxDECL_FOR_STRICT_MINGW32(rettype, func, params) \
|
#define wxDECL_FOR_STRICT_MINGW32(rettype, func, params) \
|
||||||
extern "C" _CRTIMP rettype __cdecl __MINGW_NOTHROW func params ;
|
extern "C" _CRTIMP rettype __cdecl __MINGW_NOTHROW func params ;
|
||||||
|
|
||||||
|
/*
|
||||||
|
There is a bug resulting in a compilation error in MinGW standard
|
||||||
|
math.h header, see https://sourceforge.net/p/mingw/bugs/2250/, work
|
||||||
|
around it here because math.h is also included from several other
|
||||||
|
standard headers (e.g. <algorithm>) and we don't want to duplicate this
|
||||||
|
hack everywhere this happens.
|
||||||
|
*/
|
||||||
|
wxDECL_FOR_STRICT_MINGW32(double, _hypot, (double, double));
|
||||||
#else
|
#else
|
||||||
#define wxDECL_FOR_STRICT_MINGW32(rettype, func, params)
|
#define wxDECL_FOR_STRICT_MINGW32(rettype, func, params)
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user