Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@@ -0,0 +1,52 @@
// -*- C++ -*-
//===------------ support/xlocale/__nop_locale_mgmt.h -----------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP_SUPPORT_XLOCALE_NOP_LOCALE_MGMT_H
#define _LIBCPP_SUPPORT_XLOCALE_NOP_LOCALE_MGMT_H
#ifdef __cplusplus
extern "C" {
#endif
// Patch over lack of extended locale support
typedef void *locale_t;
static inline locale_t duplocale(locale_t) {
return NULL;
}
static inline void freelocale(locale_t) {
}
static inline locale_t newlocale(int, const char *, locale_t) {
return NULL;
}
static inline locale_t uselocale(locale_t) {
return NULL;
}
#define LC_COLLATE_MASK (1 << LC_COLLATE)
#define LC_CTYPE_MASK (1 << LC_CTYPE)
#define LC_MESSAGES_MASK (1 << LC_MESSAGES)
#define LC_MONETARY_MASK (1 << LC_MONETARY)
#define LC_NUMERIC_MASK (1 << LC_NUMERIC)
#define LC_TIME_MASK (1 << LC_TIME)
#define LC_ALL_MASK (LC_COLLATE_MASK|\
LC_CTYPE_MASK|\
LC_MONETARY_MASK|\
LC_NUMERIC_MASK|\
LC_TIME_MASK|\
LC_MESSAGES_MASK)
#ifdef __cplusplus
} // extern "C"
#endif
#endif // _LIBCPP_SUPPORT_XLOCALE_NOP_LOCALE_MGMT_H

View File

@@ -0,0 +1,165 @@
// -*- C++ -*-
//===--------------- support/xlocale/__posix_l_fallback.h -----------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// These are reimplementations of some extended locale functions ( *_l ) that
// are normally part of POSIX. This shared implementation provides parts of the
// extended locale support for libc's that normally don't have any (like
// Android's bionic and Newlib).
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP_SUPPORT_XLOCALE_POSIX_L_FALLBACK_H
#define _LIBCPP_SUPPORT_XLOCALE_POSIX_L_FALLBACK_H
#ifdef __cplusplus
extern "C" {
#endif
inline _LIBCPP_ALWAYS_INLINE int isalnum_l(int c, locale_t) {
return ::isalnum(c);
}
inline _LIBCPP_ALWAYS_INLINE int isalpha_l(int c, locale_t) {
return ::isalpha(c);
}
inline _LIBCPP_ALWAYS_INLINE int isblank_l(int c, locale_t) {
return ::isblank(c);
}
inline _LIBCPP_ALWAYS_INLINE int iscntrl_l(int c, locale_t) {
return ::iscntrl(c);
}
inline _LIBCPP_ALWAYS_INLINE int isdigit_l(int c, locale_t) {
return ::isdigit(c);
}
inline _LIBCPP_ALWAYS_INLINE int isgraph_l(int c, locale_t) {
return ::isgraph(c);
}
inline _LIBCPP_ALWAYS_INLINE int islower_l(int c, locale_t) {
return ::islower(c);
}
inline _LIBCPP_ALWAYS_INLINE int isprint_l(int c, locale_t) {
return ::isprint(c);
}
inline _LIBCPP_ALWAYS_INLINE int ispunct_l(int c, locale_t) {
return ::ispunct(c);
}
inline _LIBCPP_ALWAYS_INLINE int isspace_l(int c, locale_t) {
return ::isspace(c);
}
inline _LIBCPP_ALWAYS_INLINE int isupper_l(int c, locale_t) {
return ::isupper(c);
}
inline _LIBCPP_ALWAYS_INLINE int isxdigit_l(int c, locale_t) {
return ::isxdigit(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswalnum_l(wint_t c, locale_t) {
return ::iswalnum(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswalpha_l(wint_t c, locale_t) {
return ::iswalpha(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswblank_l(wint_t c, locale_t) {
return ::iswblank(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswcntrl_l(wint_t c, locale_t) {
return ::iswcntrl(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswdigit_l(wint_t c, locale_t) {
return ::iswdigit(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswgraph_l(wint_t c, locale_t) {
return ::iswgraph(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswlower_l(wint_t c, locale_t) {
return ::iswlower(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswprint_l(wint_t c, locale_t) {
return ::iswprint(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswpunct_l(wint_t c, locale_t) {
return ::iswpunct(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswspace_l(wint_t c, locale_t) {
return ::iswspace(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswupper_l(wint_t c, locale_t) {
return ::iswupper(c);
}
inline _LIBCPP_ALWAYS_INLINE int iswxdigit_l(wint_t c, locale_t) {
return ::iswxdigit(c);
}
inline _LIBCPP_ALWAYS_INLINE int toupper_l(int c, locale_t) {
return ::toupper(c);
}
inline _LIBCPP_ALWAYS_INLINE int tolower_l(int c, locale_t) {
return ::tolower(c);
}
inline _LIBCPP_ALWAYS_INLINE wint_t towupper_l(wint_t c, locale_t) {
return ::towupper(c);
}
inline _LIBCPP_ALWAYS_INLINE wint_t towlower_l(wint_t c, locale_t) {
return ::towlower(c);
}
inline _LIBCPP_ALWAYS_INLINE int strcoll_l(const char *s1, const char *s2,
locale_t) {
return ::strcoll(s1, s2);
}
inline _LIBCPP_ALWAYS_INLINE size_t strxfrm_l(char *dest, const char *src,
size_t n, locale_t) {
return ::strxfrm(dest, src, n);
}
inline _LIBCPP_ALWAYS_INLINE size_t strftime_l(char *s, size_t max,
const char *format,
const struct tm *tm, locale_t) {
return ::strftime(s, max, format, tm);
}
inline _LIBCPP_ALWAYS_INLINE int wcscoll_l(const wchar_t *ws1,
const wchar_t *ws2, locale_t) {
return ::wcscoll(ws1, ws2);
}
inline _LIBCPP_ALWAYS_INLINE size_t wcsxfrm_l(wchar_t *dest, const wchar_t *src,
size_t n, locale_t) {
return ::wcsxfrm(dest, src, n);
}
#ifdef __cplusplus
}
#endif
#endif // _LIBCPP_SUPPORT_XLOCALE_POSIX_L_FALLBACK_H

View File

@@ -0,0 +1,67 @@
// -*- C++ -*-
//===-------------- support/xlocale/__strtonum_fallback.h -----------------===//
//
// The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
// These are reimplementations of some extended locale functions ( *_l ) that
// aren't part of POSIX. They are widely available though (GLIBC, BSD, maybe
// others). The unifying aspect in this case is that all of these functions
// convert strings to some numeric type.
//===----------------------------------------------------------------------===//
#ifndef _LIBCPP_SUPPORT_XLOCALE_STRTONUM_FALLBACK_H
#define _LIBCPP_SUPPORT_XLOCALE_STRTONUM_FALLBACK_H
#ifdef __cplusplus
extern "C" {
#endif
inline _LIBCPP_ALWAYS_INLINE float strtof_l(const char *nptr,
char **endptr, locale_t) {
return ::strtof(nptr, endptr);
}
inline _LIBCPP_ALWAYS_INLINE double strtod_l(const char *nptr,
char **endptr, locale_t) {
return ::strtod(nptr, endptr);
}
inline _LIBCPP_ALWAYS_INLINE long double strtold_l(const char *nptr,
char **endptr, locale_t) {
return ::strtold(nptr, endptr);
}
inline _LIBCPP_ALWAYS_INLINE long long
strtoll_l(const char *nptr, char **endptr, int base, locale_t) {
return ::strtoll(nptr, endptr, base);
}
inline _LIBCPP_ALWAYS_INLINE unsigned long long
strtoull_l(const char *nptr, char **endptr, int base, locale_t) {
return ::strtoull(nptr, endptr, base);
}
inline _LIBCPP_ALWAYS_INLINE long long
wcstoll_l(const wchar_t *nptr, wchar_t **endptr, int base, locale_t) {
return ::wcstoll(nptr, endptr, base);
}
inline _LIBCPP_ALWAYS_INLINE unsigned long long
wcstoull_l(const wchar_t *nptr, wchar_t **endptr, int base, locale_t) {
return ::wcstoull(nptr, endptr, base);
}
inline _LIBCPP_ALWAYS_INLINE long double wcstold_l(const wchar_t *nptr,
wchar_t **endptr, locale_t) {
return ::wcstold(nptr, endptr);
}
#ifdef __cplusplus
}
#endif
#endif // _LIBCPP_SUPPORT_XLOCALE_STRTONUM_FALLBACK_H