summaryrefslogtreecommitdiffstats
path: root/libcxx/src/support
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-05-31 22:14:05 +0000
committerEric Fiselier <eric@efcs.ca>2017-05-31 22:14:05 +0000
commit1ec026252b3027f06c8a561d93fc0a3801107bba (patch)
tree1f2f3fb8bb2fcac2fa57ada4189b42c73f0d0fe4 /libcxx/src/support
parent27db230ab05a685268b94f7296a99d380ab04611 (diff)
downloadbcm5719-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.cpp24
-rw-r--r--libcxx/src/support/win32/support.cpp11
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.
OpenPOWER on IntegriCloud