[libcxx] r312617 - Redirect strftime_l to the locale-ignorant strftime on mingw

Martin Storsjo via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 5 22:07:25 PDT 2017


Author: mstorsjo
Date: Tue Sep  5 22:07:25 2017
New Revision: 312617

URL: http://llvm.org/viewvc/llvm-project?rev=312617&view=rev
Log:
Redirect strftime_l to the locale-ignorant strftime on mingw

_strftime_l is only available in the numbered msvcrt versions
(starting from msvcr80.dll). In the default configuration, mingw
targets the unversioned msvcrt.dll - and there, _strftime_l is
not available (not even on windows 10).

If __MSVCRT_VERSION__ is set to a higher value (indicating a
non-default target and wanting to link to msvcrXX.dll), use the
correct function.

Differential Revision: https://reviews.llvm.org/D37468

Modified:
    libcxx/trunk/include/support/win32/locale_win32.h

Modified: libcxx/trunk/include/support/win32/locale_win32.h
URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/support/win32/locale_win32.h?rev=312617&r1=312616&r2=312617&view=diff
==============================================================================
--- libcxx/trunk/include/support/win32/locale_win32.h (original)
+++ libcxx/trunk/include/support/win32/locale_win32.h Tue Sep  5 22:07:25 2017
@@ -100,7 +100,11 @@ isupper_l(int c, _locale_t loc)
 #define iswxdigit_l _iswxdigit_l
 #define towupper_l _towupper_l
 #define towlower_l _towlower_l
+#if defined(__MINGW32__) && __MSVCRT_VERSION__ < 0x0800
+#define strftime_l( __s, __l, __f, __tm, __loc ) strftime( __s, __l, __f, __tm )
+#else
 #define strftime_l _strftime_l
+#endif
 #define sscanf_l( __s, __l, __f, ...) _sscanf_l( __s, __f, __l, __VA_ARGS__ )
 #define vsscanf_l( __s, __l, __f, ...) _sscanf_l( __s, __f, __l, __VA_ARGS__ )
 #define sprintf_l( __s, __l, __f, ... ) _sprintf_l( __s, __f, __l, __VA_ARGS__ )




More information about the cfe-commits mailing list