This reverts commit 68c04b0ae6.
This disables the IWYU mapping that caused the failure, since
the headers aren't reachable for now.
This is the first part of the "Freezing C++03 headers" proposal
explained in
https://discourse.llvm.org/t/rfc-freezing-c-03-headers-in-libc/77319/58.
This patch mechanically copies the headers as of the LLVM 19.1 release
into a subdirectory of libc++ so that we can start using these headers
when building in C++03 mode. We are going to be backporting important
changes to that copy of the headers until the LLVM 21 release. After the
LLVM 21 release, only critical bugfixes will be fixed in the C++03 copy
of the headers.
This patch only performs a copy of the headers -- these headers are
still unused by the rest of the codebase.
155 lines
5.5 KiB
C++
155 lines
5.5 KiB
C++
// -*- C++ -*-
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#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>
|
|
|
|
#ifndef _LIBCPP_STDLIB_H
|
|
# error <cstdlib> tried including <stdlib.h> but didn't find libc++'s <stdlib.h> header. \
|
|
This usually means that your header search paths are not configured properly. \
|
|
The header search paths should contain the C++ Standard Library headers before \
|
|
any C Standard Library, and you are probably using compiler flags that make that \
|
|
not be the case.
|
|
#endif
|
|
|
|
#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
|
|
# pragma GCC system_header
|
|
#endif
|
|
|
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
|
|
|
using ::size_t _LIBCPP_USING_IF_EXISTS;
|
|
using ::div_t _LIBCPP_USING_IF_EXISTS;
|
|
using ::ldiv_t _LIBCPP_USING_IF_EXISTS;
|
|
using ::lldiv_t _LIBCPP_USING_IF_EXISTS;
|
|
using ::atof _LIBCPP_USING_IF_EXISTS;
|
|
using ::atoi _LIBCPP_USING_IF_EXISTS;
|
|
using ::atol _LIBCPP_USING_IF_EXISTS;
|
|
using ::atoll _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtod _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtof _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtold _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtol _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtoll _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtoul _LIBCPP_USING_IF_EXISTS;
|
|
using ::strtoull _LIBCPP_USING_IF_EXISTS;
|
|
using ::rand _LIBCPP_USING_IF_EXISTS;
|
|
using ::srand _LIBCPP_USING_IF_EXISTS;
|
|
using ::calloc _LIBCPP_USING_IF_EXISTS;
|
|
using ::free _LIBCPP_USING_IF_EXISTS;
|
|
using ::malloc _LIBCPP_USING_IF_EXISTS;
|
|
using ::realloc _LIBCPP_USING_IF_EXISTS;
|
|
using ::abort _LIBCPP_USING_IF_EXISTS;
|
|
using ::atexit _LIBCPP_USING_IF_EXISTS;
|
|
using ::exit _LIBCPP_USING_IF_EXISTS;
|
|
using ::_Exit _LIBCPP_USING_IF_EXISTS;
|
|
using ::getenv _LIBCPP_USING_IF_EXISTS;
|
|
using ::system _LIBCPP_USING_IF_EXISTS;
|
|
using ::bsearch _LIBCPP_USING_IF_EXISTS;
|
|
using ::qsort _LIBCPP_USING_IF_EXISTS;
|
|
using ::abs _LIBCPP_USING_IF_EXISTS;
|
|
using ::labs _LIBCPP_USING_IF_EXISTS;
|
|
using ::llabs _LIBCPP_USING_IF_EXISTS;
|
|
using ::div _LIBCPP_USING_IF_EXISTS;
|
|
using ::ldiv _LIBCPP_USING_IF_EXISTS;
|
|
using ::lldiv _LIBCPP_USING_IF_EXISTS;
|
|
using ::mblen _LIBCPP_USING_IF_EXISTS;
|
|
#ifndef _LIBCPP_HAS_NO_WIDE_CHARACTERS
|
|
using ::mbtowc _LIBCPP_USING_IF_EXISTS;
|
|
using ::wctomb _LIBCPP_USING_IF_EXISTS;
|
|
using ::mbstowcs _LIBCPP_USING_IF_EXISTS;
|
|
using ::wcstombs _LIBCPP_USING_IF_EXISTS;
|
|
#endif
|
|
#if !defined(_LIBCPP_CXX03_LANG)
|
|
using ::at_quick_exit _LIBCPP_USING_IF_EXISTS;
|
|
using ::quick_exit _LIBCPP_USING_IF_EXISTS;
|
|
#endif
|
|
#if _LIBCPP_STD_VER >= 17
|
|
using ::aligned_alloc _LIBCPP_USING_IF_EXISTS;
|
|
#endif
|
|
|
|
_LIBCPP_END_NAMESPACE_STD
|
|
|
|
#endif // _LIBCPP_CSTDLIB
|