From 378def0a5859f5aa39f506e25f61474850c5de18 Mon Sep 17 00:00:00 2001 From: Andrew Johnson Date: Fri, 5 Feb 2016 14:26:23 -0600 Subject: [PATCH] Fix logic for when to define strtoll() and strtoull() Needed for MinGW and VxWorks when built against Base-3.15 --- src/misc/parseToPOD.cpp | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/misc/parseToPOD.cpp b/src/misc/parseToPOD.cpp index add8f21..d0e3bcf 100644 --- a/src/misc/parseToPOD.cpp +++ b/src/misc/parseToPOD.cpp @@ -250,17 +250,15 @@ epicsParseFloat(const char *str, float *to, char **units) #endif // MS Visual Studio 2013 defines strtoll, etc. -#if defined(_WIN32) -# if (_MSC_VER >= 1800) -# define WIN_NEEDS_OLL_FUNC 0 -# else -# define WIN_NEEDS_OLL_FUNC 1 -# endif +#if defined(_WIN32) && !defined(_MINGW) +# define NEED_OLL_FUNCS (_MSC_VER < 1800) +#elif defined(vxWorks) +# define NEED_OLL_FUNCS !defined(_WRS_VXWORKS_MAJOR) #else -# define WIN_NEEDS_OLL_FUNC 0 +# define NEED_OLL_FUNCS 0 #endif -#if defined(NEED_LONGLONG) && (defined(__vxworks) || WIN_NEEDS_OLL_FUNC) +#if defined(NEED_LONGLONG) && NEED_OLL_FUNCS static long long strtoll(const char *ptr, char ** endp, int base) {