llvm-project/libcxx/include
Arthur O'Dwyer c1a8f12873 [libc++] Restore `basic_ios`'s implicit conversion to `bool` in C++03 mode.
efriedma noted that D104682 broke this test case, reduced from SPEC2006.

    #include <istream>
    bool a(std::istream a) {
        return a.getline(0,0) == 0;
    }

We can unbreak it by restoring the conversion to something-convertible-to-bool.
We chose `void*` in order to match libstdc++.

For more ancient history, see PR19460: https://bugs.llvm.org/show_bug.cgi?id=19460

Differential Revision: https://reviews.llvm.org/D107663
2021-08-11 13:36:29 -04:00
..
__algorithm [libc++] IWYU to fix Modules complaints about _LIBCPP_ASSERT. NFCI. 2021-08-06 09:20:59 -04:00
__compare [libc++][modularisation] Split <compare> into internal headers. 2021-07-28 22:28:26 -04:00
__concepts [libc++][modularisation] Split up <concepts> into granular headers. 2021-08-10 22:02:41 -04:00
__format [libcxx] Remove _LIBCPP_HAS_NO_BUILTIN_IS_CONSTANT_EVALUATED 2021-08-10 18:59:55 +02:00
__functional [libc++] Add the __bind_back and __compose helpers 2021-08-11 10:08:20 -04:00
__iterator [libc++] IWYU to fix complaints when compiling with Modules. NFCI. 2021-08-05 14:30:08 -04:00
__memory [libc++] Handle arrays in std::destroy_at 2021-07-30 09:39:36 -04:00
__random [libcxx] Move all algorithms into their own headers 2021-06-19 07:49:06 -04:00
__ranges [libc++] IWYU to fix Modules complaints in <__ranges/reverse_view.h>. 2021-08-10 22:02:41 -04:00
__support [libc++] Provide c++03 alternative for va_copy if available in xlocale.h 2021-07-01 18:02:38 +00:00
__utility [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
__variant [libc++][NFC] Move monostate to its own header. 2021-07-08 17:35:26 +02:00
experimental [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
ext [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
CMakeLists.txt [libc++] Add the __bind_back and __compose helpers 2021-08-11 10:08:20 -04:00
__availability [libc++] Enable the synchronization library on Apple platforms 2021-06-11 12:45:18 -04:00
__bit_reference [libc++] __bit_iterator mustn't rely on deprecated SMF generation. 2021-04-26 16:22:42 -04:00
__bits [libc++] Fix some typos and remove unused macros. NFCI. 2021-04-22 12:02:22 -04:00
__bsd_locale_defaults.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__bsd_locale_fallbacks.h [libcxx][gardening] Re-order includes across libcxx. 2021-05-21 13:22:10 -07:00
__config [libc++] Remove _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS 2021-08-11 10:11:40 -04:00
__config_site.in [libc++] Disable incomplete library features. 2021-07-27 22:37:35 +02:00
__debug [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__errc [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__function_like.h [libcxx][iterator] adds `std::ranges::advance` 2021-05-26 04:27:30 +00:00
__functional_base [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
__hash_table [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
__libcpp_version [libcxx] Bump __libcpp_version to 14 after branch 2021-07-28 11:07:06 +00:00
__locale [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
__mutex_base [libc++] Enable `explicit` conversion operators, even in C++03 mode. 2021-06-22 13:35:59 -04:00
__node_handle [libc++] Alphabetize header inclusions and include-what-you-use <__debug>. NFCI. 2021-05-18 19:56:30 -04:00
__nullptr [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__split_buffer [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
__std_stream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
__string [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
__threading_support [libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread 2021-06-03 18:18:42 -04:00
__tree [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
__tuple [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
__undef_macros Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
algorithm [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
any [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
array [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
atomic [libcxx] Implement P0883R2 ("Fixing Atomic Initialization") 2021-06-20 17:37:42 +03:00
barrier [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
bit [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
bitset [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
cassert Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ccomplex [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cctype [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cerrno [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cfenv [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cfloat [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
charconv [libc++][NFC] Remove MSVC specific code. 2021-08-09 18:13:49 +02:00
chrono [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
cinttypes [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
ciso646 [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
climits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
clocale [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cmath [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
codecvt [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
compare [libc++] Remove excess whitespace in synopsis comment. NFCI. 2021-07-29 01:34:31 -04:00
complex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
complex.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
concepts [libc++][modularisation] Split up <concepts> into granular headers. 2021-08-10 22:02:41 -04:00
condition_variable [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
csetjmp [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
csignal [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdarg [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdbool [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cstddef [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdint [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdio [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstdlib [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cstring [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
ctgmath [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
ctime [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
ctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
cwchar [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
cwctype [libc++] Use the using_if_exists attribute when provided 2021-06-04 09:55:21 -04:00
deque [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
errno.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
exception [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
execution [pstl][libc++] Provide uglified header names for interface headers 2019-08-06 21:11:24 +00:00
fenv.h Mark fenv.h as a system header before the #include_next directive 2019-03-29 16:03:57 +00:00
filesystem [libc++][nfc] Improve error diagnostics. 2021-07-28 17:57:23 +02:00
float.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
format [libc++][doc] Improve contributor documentation. 2021-08-11 17:33:54 +02:00
forward_list [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
fstream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
functional [libc++] Add the __bind_back and __compose helpers 2021-08-11 10:08:20 -04:00
future [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
initializer_list [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
inttypes.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
iomanip [libc++][NFC] Remove _VSTD:: when not needed. 2021-05-10 18:15:50 +02:00
ios [libc++] Restore `basic_ios`'s implicit conversion to `bool` in C++03 mode. 2021-08-11 13:36:29 -04:00
iosfwd [libc++] s/_LIBCPP_NO_HAS_CHAR8_T/_LIBCPP_HAS_NO_CHAR8_T/g 2021-04-21 12:49:07 -04:00
iostream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
istream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
iterator [libcxx][ranges] Add `counted_iterator`. 2021-07-27 15:50:11 -07:00
latch [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
limits [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
limits.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
list [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
locale [libc++] money_get::do_get() set failbit and eofbit if iterator begin equals end 2021-07-28 22:23:09 -04:00
locale.h [libc++][nfc] Improve error diagnostics. 2021-07-28 17:57:23 +02:00
map [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
math.h [libc++] Add `__libcpp_copysign` conditionally constexpr overloads. 2021-07-21 16:57:43 +02:00
memory [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
module.modulemap [libc++] Add the __bind_back and __compose helpers 2021-08-11 10:08:20 -04:00
mutex [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
new [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
numbers [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
numeric [libc++] Alphabetize header inclusions and include-what-you-use <__debug>. NFCI. 2021-05-18 19:56:30 -04:00
optional [libcxx] Update optional star operator to be noexcept. 2021-07-01 10:42:46 -07:00
ostream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
queue [libc++] Implement the resolutions of LWG3506 and LWG3522. 2021-07-28 21:15:20 -04:00
random [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
ranges [libc++][doc] Improve contributor documentation. 2021-08-11 17:33:54 +02:00
ratio [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
regex [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
scoped_allocator [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
semaphore [libc++] Fix a few warnings in system headers with GCC 2021-07-27 20:09:01 -04:00
set [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
setjmp.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
shared_mutex [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
span [libcxx][modules] protects users from relying on libc++ detail headers (1/n) 2021-07-16 22:39:18 +00:00
sstream [libc++] Remove some _LIBCPP_CXX03_LANG from iostreams headers. 2021-06-28 12:55:26 -04:00
stack [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
stdbool.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stddef.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdexcept [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
stdint.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdio.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
stdlib.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
streambuf [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
string [libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr. 2021-07-27 16:20:21 +02:00
string.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
string_view [libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr. 2021-07-27 16:20:21 +02:00
strstream [libc++] Alphabetize and include-what-you-use. NFCI. 2021-05-29 19:54:48 -04:00
system_error [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
tgmath.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
thread [libcxx][modularisation] moves <utility> content out of <type_traits> 2021-06-24 17:57:29 +00:00
tuple [libc++] Avoid triggering warnings for implicit conversion 2021-07-23 10:53:10 -04:00
type_traits [libc++] Remove _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS 2021-08-11 10:11:40 -04:00
typeindex [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
typeinfo [libc++] Remove unnecessary reinterpret_cast from typeinfo 2021-06-28 10:00:33 -04:00
unordered_map [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
unordered_set [libcxx][functional][modular] splices <functional> into modular headers 2021-07-01 14:01:49 -04:00
utility [libcxx][modularisation] splits `<utility>` into self-contained headers 2021-06-25 00:29:01 +00:00
valarray [libc++] Fix result-type and value_type computation in <valarray>. 2021-06-05 12:29:36 -04:00
variant [libcxx][ranges] Add common_iterator. 2021-07-20 08:12:44 -07:00
vector [libc++] Fix spacing in <vector>. NFCI. 2021-07-26 18:23:50 -04:00
version [libc++] Remove _LIBCPP_HAS_UNIQUE_OBJECT_REPRESENTATIONS 2021-08-11 10:11:40 -04:00
wchar.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00
wctype.h [libc++] NFC: Normalize `#endif //` comment indentation 2021-04-20 12:03:32 -04:00