Index: third_party/libcxx/include/cstdlib |
=================================================================== |
--- third_party/libcxx/include/cstdlib (revision 0) |
+++ third_party/libcxx/include/cstdlib (revision 0) |
@@ -0,0 +1,172 @@ |
+// -*- C++ -*- |
+//===--------------------------- cstdlib ----------------------------------===// |
+// |
+// 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_CSTDLIB |
+#define _LIBCPP_CSTDLIB |
+ |
+/* |
+ cstdlib synopsis |
+ |
+Macros: |
+ |
+ EXIT_FAILURE |
+ EXIT_SUCCESS |
+ MB_CUR_MAX |
+ NULL |
+ RAND_MAX |
+ |
+namespace std |
+{ |
+ |
+Types: |
+ |
+ size_t |
+ div_t |
+ ldiv_t |
+ lldiv_t // C99 |
+ |
+double atof (const char* nptr); |
+int atoi (const char* nptr); |
+long atol (const char* nptr); |
+long long atoll(const char* nptr); // C99 |
+double strtod (const char* restrict nptr, char** restrict endptr); |
+float strtof (const char* restrict nptr, char** restrict endptr); // C99 |
+long double strtold (const char* restrict nptr, char** restrict endptr); // C99 |
+long strtol (const char* restrict nptr, char** restrict endptr, int base); |
+long long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99 |
+unsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base); |
+unsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99 |
+int rand(void); |
+void srand(unsigned int seed); |
+void* calloc(size_t nmemb, size_t size); |
+void free(void* ptr); |
+void* malloc(size_t size); |
+void* realloc(void* ptr, size_t size); |
+void abort(void); |
+int atexit(void (*func)(void)); |
+void exit(int status); |
+void _Exit(int status); |
+char* getenv(const char* name); |
+int system(const char* string); |
+void* bsearch(const void* key, const void* base, size_t nmemb, size_t size, |
+ int (*compar)(const void *, const void *)); |
+void qsort(void* base, size_t nmemb, size_t size, |
+ int (*compar)(const void *, const void *)); |
+int abs( int j); |
+long abs( long j); |
+long long abs(long long j); // C++0X |
+long labs( long j); |
+long long llabs(long long j); // C99 |
+div_t div( int numer, int denom); |
+ldiv_t div( long numer, long denom); |
+lldiv_t div(long long numer, long long denom); // C++0X |
+ldiv_t ldiv( long numer, long denom); |
+lldiv_t lldiv(long long numer, long long denom); // C99 |
+int mblen(const char* s, size_t n); |
+int mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n); |
+int wctomb(char* s, wchar_t wchar); |
+size_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n); |
+size_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n); |
+int at_quick_exit(void (*func)(void)) // C++11 |
+void quick_exit(int status); // C++11 |
+void *aligned_alloc(size_t alignment, size_t size); // C11 |
+ |
+} // std |
+ |
+*/ |
+ |
+#include <__config> |
+#include <stdlib.h> |
+#ifdef _LIBCPP_MSVCRT |
+#include "support/win32/locale_win32.h" |
+#endif // _LIBCPP_MSVCRT |
+ |
+#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
+#pragma GCC system_header |
+#endif |
+ |
+_LIBCPP_BEGIN_NAMESPACE_STD |
+ |
+using ::size_t; |
+using ::div_t; |
+using ::ldiv_t; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::lldiv_t; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::atof; |
+using ::atoi; |
+using ::atol; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::atoll; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::strtod; |
+using ::strtof; |
+using ::strtold; |
+using ::strtol; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::strtoll; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::strtoul; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::strtoull; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::rand; |
+using ::srand; |
+using ::calloc; |
+using ::free; |
+using ::malloc; |
+using ::realloc; |
+using ::abort; |
+using ::atexit; |
+using ::exit; |
+using ::_Exit; |
+using ::getenv; |
+using ::system; |
+using ::bsearch; |
+using ::qsort; |
+using ::abs; |
+using ::labs; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::llabs; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::div; |
+using ::ldiv; |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+using ::lldiv; |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+using ::mblen; |
+using ::mbtowc; |
+using ::wctomb; |
+using ::mbstowcs; |
+using ::wcstombs; |
+#ifdef _LIBCPP_HAS_QUICK_EXIT |
+using ::at_quick_exit; |
+using ::quick_exit; |
+#endif |
+#ifdef _LIBCPP_HAS_C11_FEATURES |
+using ::aligned_alloc; |
+#endif |
+ |
+// MSVCRT already has the correct prototype in <stdlib.h> #ifdef __cplusplus |
+#if !defined(_LIBCPP_MSVCRT) && !defined(__sun__) && !defined(_AIX) |
+inline _LIBCPP_INLINE_VISIBILITY long abs( long __x) _NOEXCEPT {return labs(__x);} |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+inline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return llabs(__x);} |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+ |
+inline _LIBCPP_INLINE_VISIBILITY ldiv_t div( long __x, long __y) _NOEXCEPT {return ldiv(__x, __y);} |
+#ifndef _LIBCPP_HAS_NO_LONG_LONG |
+inline _LIBCPP_INLINE_VISIBILITY lldiv_t div(long long __x, long long __y) _NOEXCEPT {return lldiv(__x, __y);} |
+#endif // _LIBCPP_HAS_NO_LONG_LONG |
+#endif // _LIBCPP_MSVCRT |
+ |
+_LIBCPP_END_NAMESPACE_STD |
+ |
+#endif // _LIBCPP_CSTDLIB |