llvm-project/libcxx/include
Michael Park ada2a8ea4a
Remove the try/catch codepath if `swap` is `noexcept`.
Summary:
In the case where `swap` is `noexcept`, we should avoid the extension to provide strong-exception guarantee.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46342

Reviewers: #libc, ldionne

Reviewed By: #libc, ldionne

Subscribers: dexonsmith, mclow.lists, miscco, ldionne, zoecarver, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D81954
2020-06-16 14:51:22 -07:00
..
experimental [NFC] Strip trailing whitespace from libc++ 2019-10-23 11:19:19 -07:00
ext [libc++] Cleanup and enable multiple warnings. 2019-12-12 21:09:08 -05:00
support [libcxx] [Windows] Store the lconv struct returned from localeconv in locale_t 2020-01-29 22:37:11 +02:00
CMakeLists.txt build: update libc++ as there are some bots with integrated build 2020-04-28 20:07:28 +00:00
__bit_reference [libc++] Fix ABI break in __bit_reference. 2020-02-19 12:02:06 -05: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 Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__config [libc++] Fix too stringent availability markup for bad_optional_access 2020-06-09 14:39:51 -04:00
__config_site.in [libc++] Fix the LIBCXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT setting 2020-05-29 06:14:30 -04:00
__debug [libc++][NFC] Remove excess trailing newlines from most files 2019-10-23 08:08:57 -07:00
__errc Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__functional_03 [libc++] Properly mark std::function as deprecated in C++03 2020-03-10 17:45:39 -04:00
__functional_base [libc++] Fix unintended ADL inside ref(reference_wrapper<T>) and cref(reference_wrapper<T>) 2020-02-20 12:22:21 -05:00
__functional_base_03 Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__hash_table [libc++] Rework compressed pair constructors. 2019-12-16 18:38:58 -05:00
__libcpp_version Bump the trunk major version to 11 2020-01-15 13:38:01 +01:00
__locale Upstream Bionic definitions of ctype_base/regex. 2020-04-06 13:38:16 -07:00
__mutex_base [libc++] Ensure __config always defines certain configuration macros. 2019-12-13 15:42:07 -05:00
__node_handle Avoid name conflict with kernel headers 2019-04-24 09:43:44 +00:00
__nullptr Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__split_buffer [libc++] Rework compressed pair constructors. 2019-12-16 18:38:58 -05:00
__sso_allocator Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__std_stream Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
__string Make basic_string::operator=() tail call properly 2020-04-10 19:41:46 -04:00
__threading_support Fix compile for -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY 2020-05-21 13:48:59 +01:00
__tree [libc++] Rework compressed pair constructors. 2019-12-16 18:38:58 -05:00
__tuple Refactor default constructor SFINAE in pair and tuple. 2019-09-30 20:55:30 +00: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 Rename __is_foo_iterator traits to reflect their Cpp17 nature. 2019-11-18 01:49:32 -05:00
any [NFC][libc++] Remove stray semi-colon after function definition 2019-06-19 16:33:28 +00:00
array [libc++] Add assertions on OOB accesses in std::array when the debug mode is enabled 2020-06-01 16:37:39 -04:00
atomic Updated synopsis of <atomic> to match what is implemented 2020-06-01 14:30:13 -07:00
barrier [libc++] Add availability markup for the C++20 Synchronization Library on Apple 2020-04-06 18:07:26 -04:00
bit [libc++] NFC: Remove outdated numbering in <bit> synopsis 2020-05-28 14:31:21 -04:00
bitset Ensure bitset's string constructor doesn't poison the overload set. 2019-07-01 19:59:34 +00:00
cassert Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ccomplex Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cctype Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cerrno Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cfenv Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cfloat Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
charconv [libc++] Mark __u64toa and __u32toa as noexcept 2020-05-22 16:11:44 -04:00
chrono [libc++] Avoid UB in year_month_day_last::day() for incorrect months 2020-06-09 13:43:13 -04:00
cinttypes Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ciso646 Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
climits Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
clocale Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cmath [libc++] [LWG3201] Update status page: lerp should be marked noexcept. 2020-05-25 22:28:21 +02:00
codecvt Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
compare Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
complex [libc++] Fix ostream for complex numbers with fixed field width 2020-05-07 13:51:07 -04:00
complex.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
concepts [libcxx] Adds [concept.same] 2020-04-08 18:00:13 -04:00
condition_variable Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
csetjmp Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
csignal Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cstdarg Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cstdbool Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cstddef Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
cstdint Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
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 Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ctgmath Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
ctime Fix _LIBCPP_HAS_ definitions for Android. 2019-11-18 12:19:58 -08:00
ctype.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cwchar Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
cwctype Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
deque [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
errno.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
exception Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01: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 Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
float.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
forward_list [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
fstream Open fstream files in O_CLOEXEC mode when possible. 2019-09-16 19:26:41 +00:00
functional [NFC] Add _EnableIfLValueCallable and move reference out of __callable. 2020-05-19 17:15:28 -07:00
future Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
initializer_list [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
iomanip [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
ios Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
iosfwd Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
iostream Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
istream [libc++] Implement LWG 3199 2019-08-20 18:21:06 +00:00
iterator [libc++] Don't trigger unsigned conversion warnings in std::advance 2020-06-16 13:47:47 -04:00
latch [libc++] Add availability markup for the C++20 Synchronization Library on Apple 2020-04-06 18:07:26 -04:00
limits Fix -Wdouble-promotion warnings. 2019-07-01 16:13:31 +00:00
limits.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
list [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
locale [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
locale.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
map [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
math.h Reland [libc++] Move abs and div into stdlib.h to fix header cycle. 2020-05-08 21:52:27 +02:00
memory [NFC] [libcxx] Remove shared_ptr's no-rvalue unique_ptr converting constructor. 2020-06-08 09:49:21 -07:00
module.modulemap [libcxx] Adds [concept.same] 2020-04-08 18:00:13 -04:00
mutex [libc++] Mark __call_once_proxy as hidden and internal 2019-11-11 10:27:48 -05:00
new [libc++] Revert 03dd205c15 "Adjust max_align_t handling" 2020-02-25 11:42:08 -05:00
numeric [libc++] Fix typo in std::midpoint 2019-12-21 01:26:24 -08:00
optional Add a missing '__uncvref_t' to the SFINAE constraints for optional's assignment operator. Fixes PR38638. Thanks to Jonathan Wakely for the report 2019-06-27 18:40:55 +00:00
ostream Add forward declaration of operator<< in <string_view> as required. 2019-09-25 18:56:54 +00:00
queue Rename __is_foo_iterator traits to reflect their Cpp17 nature. 2019-11-18 01:49:32 -05:00
random [libc++] Bugfix to std::binomial_distribution<int> 2020-03-17 15:56:16 -04:00
ratio Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
regex Revert "[libc++] ECMAScript IdentityEscape is ambiguous (2584)" 2020-05-08 10:37:04 -07:00
scoped_allocator Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
semaphore [libc++] Add availability markup for the C++20 Synchronization Library on Apple 2020-04-06 18:07:26 -04:00
set [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
setjmp.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
shared_mutex Revert "Suppress -Wctad-maybe-unsupported on types w/o deduction guides." 2019-08-04 07:13:43 +00:00
span [libcxx] Remove swap for std::span 2020-05-20 14:34:21 -04:00
sstream add a test and a couple minor bug fixes for the implicit-signed-integer-truncation sanitizer. This is PR#40566 2019-02-01 21:59:27 +00:00
stack [NFC][libcxx] Remove trailing whitespace 2019-05-29 16:01:36 +00:00
stdbool.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
stddef.h Avoid using std::max_align_t in pre-C++11 mode 2020-04-04 01:38:41 +02:00
stdexcept Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdio.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
stdlib.h Reland [libc++] Move abs and div into stdlib.h to fix header cycle. 2020-05-08 21:52:27 +02:00
streambuf Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
string Remove unused _LIBCPP_RAW_ITERATORS 2020-05-07 22:26:15 +02:00
string.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
string_view Add forward declaration of operator<< in <string_view> as required. 2019-09-25 18:56:54 +00:00
strstream Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
system_error Fix -Wdeprecated-copy-dtor and -Wdeprecated-dynamic-exception-spec warnings. 2020-03-17 18:59:54 +01:00
tgmath.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
thread [libc++] Work around gcc/Power9 bug in `include/thread` 2020-06-10 12:40:43 -04:00
tuple PR43764: Qualify a couple of calls to forward_as_tuple to be ADL-resilient. 2019-10-28 18:04:41 -07:00
type_traits [libcxx][type_traits] Add C++20 changes to common_type 2020-05-18 14:06:32 +02:00
typeindex Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
typeinfo [libc++] Fix the LIBCXX_HAS_MERGED_TYPEINFO_NAMES_DEFAULT setting 2020-05-29 06:14:30 -04:00
unordered_map [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
unordered_set [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
utility Refactor default constructor SFINAE in pair and tuple. 2019-09-30 20:55:30 +00:00
valarray [libc++] Cleanup and enable multiple warnings. 2019-12-12 21:09:08 -05:00
variant Remove the try/catch codepath if `swap` is `noexcept`. 2020-06-16 14:51:22 -07:00
vector [libc++][P1115][C++20] Improving the Return Value of Erase-Like Algorithms II: Free erase/erase if. 2020-05-02 14:04:50 +02:00
version [libc++] Complete overhaul of constexpr support in std::array 2020-05-28 12:31:06 -04:00
wchar.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00
wctype.h Update more file headers across all of the LLVM projects in the monorepo 2019-01-19 10:56:40 +00:00