diff options
| author | Eric Fiselier <eric@efcs.ca> | 2017-05-31 22:14:05 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2017-05-31 22:14:05 +0000 |
| commit | 1ec026252b3027f06c8a561d93fc0a3801107bba (patch) | |
| tree | 1f2f3fb8bb2fcac2fa57ada4189b42c73f0d0fe4 /libcxx/src/support | |
| parent | 27db230ab05a685268b94f7296a99d380ab04611 (diff) | |
| download | bcm5719-llvm-1ec026252b3027f06c8a561d93fc0a3801107bba.tar.gz bcm5719-llvm-1ec026252b3027f06c8a561d93fc0a3801107bba.zip | |
Fix Libc++ build with MinGW64
Summary: This patch corrects the build errors I encountered when building on MinGW64.
Reviewers: mati865, rnk, compnerd, smeenai, bcraig
Reviewed By: mati865, smeenai
Subscribers: martell, chapuni, cfe-commits
Differential Revision: https://reviews.llvm.org/D33082
llvm-svn: 304360
Diffstat (limited to 'libcxx/src/support')
| -rw-r--r-- | libcxx/src/support/win32/locale_win32.cpp | 24 | ||||
| -rw-r--r-- | libcxx/src/support/win32/support.cpp | 11 |
2 files changed, 24 insertions, 11 deletions
diff --git a/libcxx/src/support/win32/locale_win32.cpp b/libcxx/src/support/win32/locale_win32.cpp index 28cb4491781..13a6eaedacb 100644 --- a/libcxx/src/support/win32/locale_win32.cpp +++ b/libcxx/src/support/win32/locale_win32.cpp @@ -34,6 +34,18 @@ locale_t uselocale( locale_t newloc ) // uselocale returns the old locale_t return old_locale; } + +decltype(MB_CUR_MAX) MB_CUR_MAX_L( locale_t __l ) +{ +#if defined(_LIBCPP_MSVCRT) + return ___mb_cur_max_l_func(__l); +#else + __libcpp_locale_guard __current(__l); + return MB_CUR_MAX; +#endif +} + + lconv *localeconv_l( locale_t loc ) { __libcpp_locale_guard __current(loc); @@ -109,3 +121,15 @@ int vasprintf_l( char **ret, locale_t loc, const char *format, va_list ap ) __libcpp_locale_guard __current(loc); return vasprintf( ret, format, ap ); } + +#if !defined(_LIBCPP_MSVCRT) +float strtof_l(const char* nptr, char** endptr, locale_t loc) { + __libcpp_locale_guard __current(loc); + return strtof(nptr, endptr); +} + +long double strtold_l(const char* nptr, char** endptr, locale_t loc) { + __libcpp_locale_guard __current(loc); + return strtold(nptr, endptr); +} +#endif diff --git a/libcxx/src/support/win32/support.cpp b/libcxx/src/support/win32/support.cpp index e989681a6d5..dbd1c4c418a 100644 --- a/libcxx/src/support/win32/support.cpp +++ b/libcxx/src/support/win32/support.cpp @@ -15,17 +15,6 @@ #include <cstring> // strcpy, wcsncpy #include <cwchar> // mbstate_t -// Some of these functions aren't standard or if they conform, the name does not. - -int asprintf(char **sptr, const char *__restrict format, ...) -{ - va_list ap; - va_start(ap, format); - int result; - result = vasprintf(sptr, format, ap); - va_end(ap); - return result; -} // Like sprintf, but when return value >= 0 it returns // a pointer to a malloc'd string in *sptr. |

