llvm-project/libcxx/include
Arthur O'Dwyer 72557476d4 [libc++] Consistency on _LIBCPP_CLANG_VER tests in <type_traits>.
This came out of my review comments on D97283.

This patch re-enables the use of `__is_fundamental`, `__is_signed`, etc.
on non-Clang compilers. Previously, when we found that a builtin didn't
work on old Clangs, we had been reacting by limiting its use to new Clangs
(i.e., we'd also stop using it on new GCCs and new MSVCs, just because of
the old Clang bug). I claim that this was unintentional.

Notice that on Apple Clang, `_LIBCPP_COMPILER_CLANG` is defined and
`_LIBCPP_CLANG_VER` is not defined (therefore `0` in arithmetic expressions).
We assume that Apple Clang has all the bugs of all the Clangs.

Differential Revision: https://reviews.llvm.org/D98720
2021-03-19 10:49:00 -04:00
..
__memory [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
__support [SystemZ][z/OS] vasprintf fix libc++ 2021-03-18 15:00:57 -04:00
experimental [libc++] Update and normalize the "all the headers" tests. 2020-12-03 15:01:38 -05:00
ext [libc++] Remove workarounds for missing rvalue references 2020-08-12 12:02:28 -04:00
CMakeLists.txt [SystemZ][z/OS] Missing locale functions libc++ 2021-03-08 19:32:33 +00:00
__availability [libc++] Make feature-test macros consistent with availability macros 2021-02-04 11:40:22 -05:00
__bit_reference [libc++] Introduce __bits 2021-01-22 21:20:23 +01:00
__bits [NFC][libc++] Fix _LIBCPP_HAS_BITSCAN64 usage. 2021-02-23 08:13:49 +01:00
__bsd_locale_defaults.h
__bsd_locale_fallbacks.h
__config [libc++] Improve src/filesystem's formatting of paths. 2021-03-16 15:00:36 -04:00
__config_site.in [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
__debug [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__errc
__functional_03 [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
__functional_base [libc++] [LWG2993] reference_wrapper<T> conversion from U&& 2021-02-09 15:50:25 -05:00
__functional_base_03 [libc++] ADL-proof <functional> by adding _VSTD:: qualification on calls. 2020-12-14 12:08:34 -05:00
__hash_table [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
__libcpp_version [libcxx] Update include/__libcpp_version to match include/__config 2021-01-27 15:16:55 +00:00
__locale [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
__mutex_base [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__node_handle
__nullptr
__split_buffer Add noreturn attribute to non-returning functions 2021-03-10 14:35:50 -08:00
__sso_allocator [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
__std_stream
__string [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
__threading_support [libcxx] Implement semaphores for windows 2021-03-05 10:48:59 +02:00
__tree [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
__tuple Refactor default constructor SFINAE in pair and tuple. 2019-09-30 20:55:30 +00:00
__undef_macros
algorithm [libc++] Further improve the contiguous-iterator story, and fix some bugs. 2021-02-05 15:18:04 -05:00
any [libc++] Rework the whole availability markup implementation 2020-11-05 12:28:52 -05:00
array [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
atomic [libc++] Fix for the Bug 41784 2021-02-01 10:14:22 -05:00
barrier [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
bit [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
bitset [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
cassert
ccomplex
cctype
cerrno
cfenv
cfloat
charconv [libc++] Include C++ headers, not C headers, in <charconv>. 2020-12-10 22:03:12 -05:00
chrono [libc++] Change `std::numeric_limits` to just `numeric_limits` in <chrono>. 2021-02-15 16:12:10 -05:00
cinttypes
ciso646
climits
clocale
cmath [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
codecvt [libc++] [P0482] [C++20] Implement missing bits for codecvt and codecvt_byname. 2020-12-02 09:01:58 +01:00
compare [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
complex [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
complex.h
concepts [libcxx] adds concept std::regular 2021-03-12 08:54:03 -08:00
condition_variable
csetjmp
csignal
cstdarg
cstdbool
cstddef Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
cstdint
cstdio Reland: Don't expose unavailable cstdio functions. 2020-04-16 12:51:08 -07:00
cstdlib Fix _LIBCPP_HAS_ definitions for Android. 2019-11-18 12:19:58 -08:00
cstring
ctgmath
ctime [libc++] Avoid including <sys/cdefs.h> on non-Apple platforms in <ctime> 2020-09-02 18:11:26 -04:00
ctype.h
cwchar
cwctype
deque [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
errno.h
exception [libc++] Split allocator_traits and pointer_traits out of <memory> 2020-12-14 16:13:57 -05:00
execution
fenv.h
filesystem [libcxx] Avoid intermediate string objects for substrings in windows operator/= 2021-03-11 19:34:59 +02:00
float.h
format [libc++][format] Enable format_error on older compilers. 2021-02-11 19:11:20 +01:00
forward_list [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
fstream [libc++] Make LIBCXX_ENABLE_FILESYSTEM fully consistent 2021-01-19 14:15:48 -05:00
functional [libc++] Fix typos in the synopsis of bit_xor, bit_not, etc. NFC. 2021-03-07 20:22:50 -05:00
future [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
initializer_list
inttypes.h
iomanip [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
ios [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iosfwd Add new 'preferred_name' attribute. 2020-12-09 12:22:35 -08:00
iostream
istream [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
iterator [libc++] Rationalize our treatment of contiguous iterators and __unwrap_iter(). 2021-02-03 16:28:38 -05:00
latch [libc++] [docs] Mark P1865 as complete since 11.0 as it was implemented together with P1135. Fix synopses in <barrier> and <latch>. 2020-12-06 15:36:52 +01:00
limits [libc++] Rename include/support to include/__support 2021-02-04 10:16:33 -05:00
limits.h
list [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
locale [libcxx] Check return value for asprintf() 2021-01-21 19:43:11 -05:00
locale.h [libc++] Move the #error message for no localization to <locale.h> 2020-10-28 09:49:37 -04:00
map [libc++] Introduce __identity_t<T>. NFCI. 2021-03-03 22:23:14 -05:00
math.h [libc++] Use builtins in more math.h functions. 2021-02-10 15:17:42 -05:00
memory [libc++] NFC: Normalize links to bug reports 2021-03-03 13:45:29 -05:00
module.modulemap [libc++] Implement format_error. 2021-01-28 18:02:53 +01:00
mutex [libc++] ADL-proof vector<bool> by adding _VSTD:: qualification on calls. 2021-01-06 18:23:50 -05:00
new [NFC][libc++] Suppress "warning: ignoring return value" 2021-02-26 14:32:54 -08:00
numbers [libcxx] cleans up __cpp_concepts mess 2021-02-26 18:43:40 +00:00
numeric [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
optional [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
ostream [libc++] Drop old workaround for iostreams instantiations missing from the dylib 2020-10-22 14:51:25 -04:00
queue [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
random [libcxx] cleans up __cpp_concepts mess 2021-02-26 18:43:40 +00:00
ratio
regex [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
scoped_allocator
semaphore [libc++] Fix some one-off typos in comments. NFCI. 2020-12-14 09:54:58 -05:00
set [libc++] Introduce __identity_t<T>. NFCI. 2021-03-03 22:23:14 -05:00
setjmp.h
shared_mutex [libc++] Rework the whole availability markup implementation 2020-11-05 12:28:52 -05:00
span [libc++] Consistently unparenthesize `numeric_limits<T>::max`. NFCI. 2020-11-27 17:27:36 -05:00
sstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
stack
stdbool.h
stddef.h Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
stdexcept [libc++] NFC: Simplify incude of <cstdlib> 2020-11-11 17:04:32 -05:00
stdint.h
stdio.h
stdlib.h Reland [libc++] Move abs and div into stdlib.h to fix header cycle. 2020-05-08 21:52:27 +02:00
streambuf [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
string [libcxx] Don't use dllimport for a static member in a template 2021-03-04 08:55:27 +02:00
string.h
string_view [libc++] Add `noexcept` to `string::find` and similar members. 2021-02-09 11:47:40 -08:00
strstream [libc++] [P0935] [C++20] Eradicating unnecessarily explicit default constructors from the standard library. 2021-01-19 08:22:06 +01:00
system_error [libc++] Replace several uses of 0 by nullptr 2020-11-27 10:00:21 -05:00
tgmath.h
thread [libc++] ADL-proof <thread>, and eliminate `using namespace chrono`. 2020-12-01 22:13:39 -05:00
tuple [libc++] Fix incorrect forwarding in tuple's assignment operator 2021-02-25 14:56:16 -05:00
type_traits [libc++] Consistency on _LIBCPP_CLANG_VER tests in <type_traits>. 2021-03-19 10:49:00 -04:00
typeindex
typeinfo [libc++] Consistently replace `std::` qualification with `_VSTD::` or nothing. NFCI. 2020-12-01 22:13:39 -05:00
unordered_map [libc++] Introduce __identity_t<T>. NFCI. 2021-03-03 22:23:14 -05:00
unordered_set [libc++] Introduce __identity_t<T>. NFCI. 2021-03-03 22:23:14 -05:00
utility [libc++] [C++2b] [P1682] Add to_underlying. 2021-03-05 10:31:21 +01:00
valarray [libc++] Consistently replace `::new(__p) T` with `::new ((void*)__p) T`. NFCI. 2020-12-14 12:08:34 -05:00
variant libcxx: Try to fix build after D92044 2021-01-25 15:10:41 -05:00
vector [libc++] ADL-proof by adding _VSTD:: qualifications to memmove etc. 2020-12-10 22:03:12 -05:00
version [libcxx] updates the feature-test macro generator 2021-03-18 17:08:10 +00:00
wchar.h [SystemZ][z/OS] Missing wchar functions libc++ 2021-03-12 15:39:31 -05:00
wctype.h [libc++] Only include_next <wctype.h> if it exists 2020-11-17 13:14:36 -05:00