13e519524SHoward Hinnant// -*- C++ -*- 2eb8650a7SLouis Dionne//===----------------------------------------------------------------------===// 33e519524SHoward Hinnant// 457b08b09SChandler Carruth// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 557b08b09SChandler Carruth// See https://llvm.org/LICENSE.txt for license information. 657b08b09SChandler Carruth// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 73e519524SHoward Hinnant// 83e519524SHoward Hinnant//===----------------------------------------------------------------------===// 93e519524SHoward Hinnant 103e519524SHoward Hinnant#ifndef _LIBCPP_CSTDLIB 113e519524SHoward Hinnant#define _LIBCPP_CSTDLIB 123e519524SHoward Hinnant 133e519524SHoward Hinnant/* 143e519524SHoward Hinnant cstdlib synopsis 153e519524SHoward Hinnant 163e519524SHoward HinnantMacros: 173e519524SHoward Hinnant 183e519524SHoward Hinnant EXIT_FAILURE 193e519524SHoward Hinnant EXIT_SUCCESS 203e519524SHoward Hinnant MB_CUR_MAX 213e519524SHoward Hinnant NULL 223e519524SHoward Hinnant RAND_MAX 233e519524SHoward Hinnant 243e519524SHoward Hinnantnamespace std 253e519524SHoward Hinnant{ 263e519524SHoward Hinnant 273e519524SHoward HinnantTypes: 283e519524SHoward Hinnant 293e519524SHoward Hinnant size_t 303e519524SHoward Hinnant div_t 313e519524SHoward Hinnant ldiv_t 323e519524SHoward Hinnant lldiv_t // C99 333e519524SHoward Hinnant 343e519524SHoward Hinnantdouble atof (const char* nptr); 353e519524SHoward Hinnantint atoi (const char* nptr); 363e519524SHoward Hinnantlong atol (const char* nptr); 373e519524SHoward Hinnantlong long atoll(const char* nptr); // C99 383e519524SHoward Hinnantdouble strtod (const char* restrict nptr, char** restrict endptr); 393e519524SHoward Hinnantfloat strtof (const char* restrict nptr, char** restrict endptr); // C99 403e519524SHoward Hinnantlong double strtold (const char* restrict nptr, char** restrict endptr); // C99 413e519524SHoward Hinnantlong strtol (const char* restrict nptr, char** restrict endptr, int base); 423e519524SHoward Hinnantlong long strtoll (const char* restrict nptr, char** restrict endptr, int base); // C99 433e519524SHoward Hinnantunsigned long strtoul (const char* restrict nptr, char** restrict endptr, int base); 443e519524SHoward Hinnantunsigned long long strtoull(const char* restrict nptr, char** restrict endptr, int base); // C99 453e519524SHoward Hinnantint rand(void); 463e519524SHoward Hinnantvoid srand(unsigned int seed); 473e519524SHoward Hinnantvoid* calloc(size_t nmemb, size_t size); 483e519524SHoward Hinnantvoid free(void* ptr); 493e519524SHoward Hinnantvoid* malloc(size_t size); 503e519524SHoward Hinnantvoid* realloc(void* ptr, size_t size); 513e519524SHoward Hinnantvoid abort(void); 523e519524SHoward Hinnantint atexit(void (*func)(void)); 533e519524SHoward Hinnantvoid exit(int status); 543e519524SHoward Hinnantvoid _Exit(int status); 553e519524SHoward Hinnantchar* getenv(const char* name); 563e519524SHoward Hinnantint system(const char* string); 573e519524SHoward Hinnantvoid* bsearch(const void* key, const void* base, size_t nmemb, size_t size, 583e519524SHoward Hinnant int (*compar)(const void *, const void *)); 593e519524SHoward Hinnantvoid qsort(void* base, size_t nmemb, size_t size, 603e519524SHoward Hinnant int (*compar)(const void *, const void *)); 613e519524SHoward Hinnantint abs( int j); 623e519524SHoward Hinnantlong abs( long j); 633e519524SHoward Hinnantlong long abs(long long j); // C++0X 643e519524SHoward Hinnantlong labs( long j); 653e519524SHoward Hinnantlong long llabs(long long j); // C99 663e519524SHoward Hinnantdiv_t div( int numer, int denom); 673e519524SHoward Hinnantldiv_t div( long numer, long denom); 683e519524SHoward Hinnantlldiv_t div(long long numer, long long denom); // C++0X 693e519524SHoward Hinnantldiv_t ldiv( long numer, long denom); 703e519524SHoward Hinnantlldiv_t lldiv(long long numer, long long denom); // C99 713e519524SHoward Hinnantint mblen(const char* s, size_t n); 723e519524SHoward Hinnantint mbtowc(wchar_t* restrict pwc, const char* restrict s, size_t n); 733e519524SHoward Hinnantint wctomb(char* s, wchar_t wchar); 743e519524SHoward Hinnantsize_t mbstowcs(wchar_t* restrict pwcs, const char* restrict s, size_t n); 753e519524SHoward Hinnantsize_t wcstombs(char* restrict s, const wchar_t* restrict pwcs, size_t n); 767ba81603SHoward Hinnantint at_quick_exit(void (*func)(void)) // C++11 777ba81603SHoward Hinnantvoid quick_exit(int status); // C++11 787ba81603SHoward Hinnantvoid *aligned_alloc(size_t alignment, size_t size); // C11 793e519524SHoward Hinnant 803e519524SHoward Hinnant} // std 813e519524SHoward Hinnant 823e519524SHoward Hinnant*/ 833e519524SHoward Hinnant 84*385cc25aSLouis Dionne#include <__assert> // all public C++ headers provide the assertion handler 853e519524SHoward Hinnant#include <__config> 863e519524SHoward Hinnant#include <stdlib.h> 873e519524SHoward Hinnant 88073458b1SHoward Hinnant#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 893e519524SHoward Hinnant# pragma GCC system_header 90073458b1SHoward Hinnant#endif 913e519524SHoward Hinnant 923e519524SHoward Hinnant_LIBCPP_BEGIN_NAMESPACE_STD 933e519524SHoward Hinnant 94a9c9183cSLouis Dionneusing ::size_t _LIBCPP_USING_IF_EXISTS; 95a9c9183cSLouis Dionneusing ::div_t _LIBCPP_USING_IF_EXISTS; 96a9c9183cSLouis Dionneusing ::ldiv_t _LIBCPP_USING_IF_EXISTS; 97a9c9183cSLouis Dionneusing ::lldiv_t _LIBCPP_USING_IF_EXISTS; 98a9c9183cSLouis Dionneusing ::atof _LIBCPP_USING_IF_EXISTS; 99a9c9183cSLouis Dionneusing ::atoi _LIBCPP_USING_IF_EXISTS; 100a9c9183cSLouis Dionneusing ::atol _LIBCPP_USING_IF_EXISTS; 101a9c9183cSLouis Dionneusing ::atoll _LIBCPP_USING_IF_EXISTS; 102a9c9183cSLouis Dionneusing ::strtod _LIBCPP_USING_IF_EXISTS; 103a9c9183cSLouis Dionneusing ::strtof _LIBCPP_USING_IF_EXISTS; 104a9c9183cSLouis Dionneusing ::strtold _LIBCPP_USING_IF_EXISTS; 105a9c9183cSLouis Dionneusing ::strtol _LIBCPP_USING_IF_EXISTS; 106a9c9183cSLouis Dionneusing ::strtoll _LIBCPP_USING_IF_EXISTS; 107a9c9183cSLouis Dionneusing ::strtoul _LIBCPP_USING_IF_EXISTS; 108a9c9183cSLouis Dionneusing ::strtoull _LIBCPP_USING_IF_EXISTS; 109a9c9183cSLouis Dionneusing ::rand _LIBCPP_USING_IF_EXISTS; 110a9c9183cSLouis Dionneusing ::srand _LIBCPP_USING_IF_EXISTS; 111a9c9183cSLouis Dionneusing ::calloc _LIBCPP_USING_IF_EXISTS; 112a9c9183cSLouis Dionneusing ::free _LIBCPP_USING_IF_EXISTS; 113a9c9183cSLouis Dionneusing ::malloc _LIBCPP_USING_IF_EXISTS; 114a9c9183cSLouis Dionneusing ::realloc _LIBCPP_USING_IF_EXISTS; 115a9c9183cSLouis Dionneusing ::abort _LIBCPP_USING_IF_EXISTS; 116a9c9183cSLouis Dionneusing ::atexit _LIBCPP_USING_IF_EXISTS; 117a9c9183cSLouis Dionneusing ::exit _LIBCPP_USING_IF_EXISTS; 118a9c9183cSLouis Dionneusing ::_Exit _LIBCPP_USING_IF_EXISTS; 119a9c9183cSLouis Dionneusing ::getenv _LIBCPP_USING_IF_EXISTS; 120a9c9183cSLouis Dionneusing ::system _LIBCPP_USING_IF_EXISTS; 121a9c9183cSLouis Dionneusing ::bsearch _LIBCPP_USING_IF_EXISTS; 122a9c9183cSLouis Dionneusing ::qsort _LIBCPP_USING_IF_EXISTS; 123a9c9183cSLouis Dionneusing ::abs _LIBCPP_USING_IF_EXISTS; 124a9c9183cSLouis Dionneusing ::labs _LIBCPP_USING_IF_EXISTS; 125a9c9183cSLouis Dionneusing ::llabs _LIBCPP_USING_IF_EXISTS; 126a9c9183cSLouis Dionneusing ::div _LIBCPP_USING_IF_EXISTS; 127a9c9183cSLouis Dionneusing ::ldiv _LIBCPP_USING_IF_EXISTS; 128a9c9183cSLouis Dionneusing ::lldiv _LIBCPP_USING_IF_EXISTS; 129a9c9183cSLouis Dionneusing ::mblen _LIBCPP_USING_IF_EXISTS; 130a9c9183cSLouis Dionneusing ::mbtowc _LIBCPP_USING_IF_EXISTS; 131a9c9183cSLouis Dionneusing ::wctomb _LIBCPP_USING_IF_EXISTS; 132a9c9183cSLouis Dionneusing ::mbstowcs _LIBCPP_USING_IF_EXISTS; 133a9c9183cSLouis Dionneusing ::wcstombs _LIBCPP_USING_IF_EXISTS; 13421f73d58SLouis Dionne#if !defined(_LIBCPP_CXX03_LANG) 135a9c9183cSLouis Dionneusing ::at_quick_exit _LIBCPP_USING_IF_EXISTS; 136a9c9183cSLouis Dionneusing ::quick_exit _LIBCPP_USING_IF_EXISTS; 1375f13d66fSDavid Chisnall#endif 13821f73d58SLouis Dionne#if _LIBCPP_STD_VER > 14 139a9c9183cSLouis Dionneusing ::aligned_alloc _LIBCPP_USING_IF_EXISTS; 1407ba81603SHoward Hinnant#endif 1413e519524SHoward Hinnant 1423e519524SHoward Hinnant_LIBCPP_END_NAMESPACE_STD 1433e519524SHoward Hinnant 1443e519524SHoward Hinnant#endif // _LIBCPP_CSTDLIB 145