diff options
author | 2016-09-03 18:39:32 +0000 | |
---|---|---|
committer | 2016-09-03 18:39:32 +0000 | |
commit | fe1ccca2776129541f1c4f645e4d1de89a22a031 (patch) | |
tree | 8e4fd7a09a5a15a9498fd2d88dcddbd40e999c79 /lib/libcxx/include/support/solaris | |
parent | Fixed missing null check in switchctl.c (diff) | |
download | wireguard-openbsd-fe1ccca2776129541f1c4f645e4d1de89a22a031.tar.xz wireguard-openbsd-fe1ccca2776129541f1c4f645e4d1de89a22a031.zip |
Import libc++ 3.9.0
Diffstat (limited to 'lib/libcxx/include/support/solaris')
-rw-r--r-- | lib/libcxx/include/support/solaris/floatingpoint.h | 14 | ||||
-rw-r--r-- | lib/libcxx/include/support/solaris/wchar.h | 47 | ||||
-rw-r--r-- | lib/libcxx/include/support/solaris/xlocale.h | 77 |
3 files changed, 138 insertions, 0 deletions
diff --git a/lib/libcxx/include/support/solaris/floatingpoint.h b/lib/libcxx/include/support/solaris/floatingpoint.h new file mode 100644 index 00000000000..999d144b1f2 --- /dev/null +++ b/lib/libcxx/include/support/solaris/floatingpoint.h @@ -0,0 +1,14 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +#define atof sun_atof +#define strtod sun_strtod +#include_next "floatingpoint.h" +#undef atof +#undef strtod diff --git a/lib/libcxx/include/support/solaris/wchar.h b/lib/libcxx/include/support/solaris/wchar.h new file mode 100644 index 00000000000..0e8e660c8bd --- /dev/null +++ b/lib/libcxx/include/support/solaris/wchar.h @@ -0,0 +1,47 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +#define iswalpha sun_iswalpha +#define iswupper sun_iswupper +#define iswlower sun_iswlower +#define iswdigit sun_iswdigit +#define iswxdigit sun_iswxdigit +#define iswalnum sun_iswalnum +#define iswspace sun_iswspace +#define iswpunct sun_iswpunct +#define iswprint sun_iswprint +#define iswgraph sun_iswgraph +#define iswcntrl sun_iswcntrl +#define iswctype sun_iswctype +#define towlower sun_towlower +#define towupper sun_towupper +#define wcswcs sun_wcswcs +#define wcswidth sun_wcswidth +#define wcwidth sun_wcwidth +#define wctype sun_wctype +#define _WCHAR_T 1 +#include_next "wchar.h" +#undef iswalpha +#undef iswupper +#undef iswlower +#undef iswdigit +#undef iswxdigit +#undef iswalnum +#undef iswspace +#undef iswpunct +#undef iswprint +#undef iswgraph +#undef iswcntrl +#undef iswctype +#undef towlower +#undef towupper +#undef wcswcs +#undef wcswidth +#undef wcwidth +#undef wctype diff --git a/lib/libcxx/include/support/solaris/xlocale.h b/lib/libcxx/include/support/solaris/xlocale.h new file mode 100644 index 00000000000..e20ef7a6e53 --- /dev/null +++ b/lib/libcxx/include/support/solaris/xlocale.h @@ -0,0 +1,77 @@ +//===----------------------------------------------------------------------===// +// +// 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. +// +//===----------------------------------------------------------------------===// + +//////////////////////////////////////////////////////////////////////////////// +// Minimal xlocale implementation for Solaris. This implements the subset of +// the xlocale APIs that libc++ depends on. +//////////////////////////////////////////////////////////////////////////////// +#ifndef __XLOCALE_H_INCLUDED +#define __XLOCALE_H_INCLUDED + +#include <stdlib.h> + +#ifdef __cplusplus +extern "C" { +#endif + + +int snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...); +int asprintf_l(char **__s, locale_t __l, const char *__format, ...); + +int sscanf_l(const char *__s, locale_t __l, const char *__format, ...); + +int toupper_l(int __c, locale_t __l); +int tolower_l(int __c, locale_t __l); + +struct lconv *localeconv(void); +struct lconv *localeconv_l(locale_t __l); + +// FIXME: These are quick-and-dirty hacks to make things pretend to work +static inline +long long strtoll_l(const char *__nptr, char **__endptr, + int __base, locale_t __loc) { + return strtoll(__nptr, __endptr, __base); +} +static inline +long strtol_l(const char *__nptr, char **__endptr, + int __base, locale_t __loc) { + return strtol(__nptr, __endptr, __base); +} +static inline +unsigned long long strtoull_l(const char *__nptr, char **__endptr, + int __base, locale_t __loc) { + return strtoull(__nptr, __endptr, __base); +} +static inline +unsigned long strtoul_l(const char *__nptr, char **__endptr, + int __base, locale_t __loc) { + return strtoul(__nptr, __endptr, __base); +} +static inline +float strtof_l(const char *__nptr, char **__endptr, + locale_t __loc) { + return strtof(__nptr, __endptr); +} +static inline +double strtod_l(const char *__nptr, char **__endptr, + locale_t __loc) { + return strtod(__nptr, __endptr); +} +static inline +long double strtold_l(const char *__nptr, char **__endptr, + locale_t __loc) { + return strtold(__nptr, __endptr); +} + + +#ifdef __cplusplus +} +#endif + +#endif |