llvm-project/libcxx/include
Eric Fiselier ddfdb32b30 Implement LWG 3013 - some filesystem members should not be noexcept.
LWG 3013 points out that the constructors and increment members
of the directory iterators need to allocate, and therefore cannot
be marked noexcept.

It also points out that `is_empty` and `copy` likely need to allocate
as well, and as such can also not be noexcept.

This patch speculatively implements the resolution removing noexcept,
because libc++ does indeed have the possibility of throwing on allocation
failure.

llvm-svn: 316941
2017-10-30 18:59:59 +00:00
..
experimental Implement LWG 3013 - some filesystem members should not be noexcept. 2017-10-30 18:59:59 +00:00
ext Remove usages of _LIBCPP_MSVC which is never defined 2017-05-10 21:40:58 +00:00
support Redirect strftime_l to the locale-ignorant strftime on mingw 2017-09-06 05:07:25 +00:00
CMakeLists.txt [libcxx][CMake] Add install path variable to allow overriding the destination 2017-07-11 02:39:50 +00:00
__bit_reference [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__bsd_locale_defaults.h Add system header pragma to BSD locale fallback headers. 2017-08-03 02:50:43 +00:00
__bsd_locale_fallbacks.h Add system header pragma to BSD locale fallback headers. 2017-08-03 02:50:43 +00:00
__config Refactor _LIBCPP_<LITTLE|BIG>_ENDIAN 2017-10-17 13:16:01 +00:00
__config_site.in [libc++] Support Microsoft ABI without vcruntime headers 2017-10-09 19:25:17 +00:00
__debug [libc++] Introduce _LIBCPP_EXTERN_VIS to fix __libcpp_debug_function link errors 2017-01-16 21:01:00 +00:00
__functional_03 Add some const_casts in places where we were implicitly casting away constness. No functional change, but now they're explicit 2017-06-14 20:00:36 +00:00
__functional_base Fix bug 33389 - __is_transparent check requires too much 2017-06-13 14:34:58 +00:00
__functional_base_03 [libcxx] Rewrite C++03 __invoke. 2015-08-26 20:15:02 +00:00
__hash_table Fix some undefined behavior in __hash_table. Thanks to vsk for the report and the patch. Reviewed as https://reviews.llvm.org/D33588. 2017-06-03 00:08:32 +00:00
__libcpp_version Update _LIBCPP_VERSION and the version in CMakeLists to 6.0 2017-07-19 13:57:10 +00:00
__locale Fix libcxx build with glibc 2.26+ by removing xlocale.h include. 2017-08-03 04:28:10 +00:00
__mutex_base Fix compile error with Bionic's PTHREAD_MUTEX_INITIALIZER 2017-06-07 20:47:42 +00:00
__nullptr [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
__split_buffer [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__sso_allocator [libc++] Tolerate presence of __deallocate macro 2017-01-07 03:01:24 +00:00
__std_stream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__string [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__threading_support [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
__tree Spelling 2017-08-18 12:57:36 +00:00
__tuple Cleanup remaining usages of _LIBCPP_HAS_NO_<c++11-feature> in tuple and utility 2017-04-19 01:23:39 +00:00
__undef_macros [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
algorithm Fix PR#35119 : set_union misbehaves with move_iterators. Thanks to Denis Yaroshevskiy for both the bug report and the fix. 2017-10-30 15:50:00 +00:00
any Implement part of LWG#2857 - any/optional. Still to do - variant. Reviewed as https://reviews.llvm.org/D31956 2017-04-12 22:51:27 +00:00
array [array.tuple]/1 says that instantiating tuple_element<N, array<T, M>> is ill-formed if N >= M. We didn't do that. Add a static_assert to cause a failure, and a test that checks that we failed 2017-06-12 14:41:37 +00:00
atomic Fix ATOMIC_<TYPE>_LOCK_FREE macros on Windows. 2017-04-20 23:22:46 +00:00
bitset [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
cassert
ccomplex
cctype Put back the undefs that Richard removed. Boost won't build w/o these; specifically the file 'bytes_methods.h' in Apple's python framework defines these. 2016-04-04 22:49:20 +00:00
cerrno Split <errno.h> out of <cerrno>. 2015-10-08 20:37:11 +00:00
cfenv Fix incorrect file header. This is <cfenv> not <cctype>. 2015-10-08 21:17:21 +00:00
cfloat Split <float.h> out of <cfloat>. 2015-10-08 20:37:44 +00:00
chrono Change the way the literal operators are defined - now w/o a seperating space. This should be a NFC, but it will change how the compiler parses it. 2017-08-09 15:42:50 +00:00
cinttypes Split <inttypes.h> out of <cinttypes>. 2015-10-08 20:38:53 +00:00
ciso646
climits
clocale
cmath cmath: Support clang's -fdelayed-template-parsing 2017-07-07 05:13:36 +00:00
codecvt [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
complex cmath: Support clang's -fdelayed-template-parsing 2017-07-07 05:13:36 +00:00
complex.h PR25118: move system_header pragma before uses of include_next to avoid extension warnings for people finding libc++ headers via -I paths. 2015-10-09 00:26:50 +00:00
condition_variable [libc++] Make _LIBCPP_TYPE_VIS export members 2017-03-02 03:22:18 +00:00
csetjmp Split <setjmp.h> out of <csetjmp>. 2015-10-08 20:41:26 +00:00
csignal
cstdarg
cstdbool
cstddef Implement P0298R3: 'std::byte'. Reviewed as https://reviews.llvm.org/D31022 2017-03-24 05:45:39 +00:00
cstdint
cstdio [libc++] Drop support for CRTs older than VS 2015 2017-04-07 02:20:52 +00:00
cstdlib [libc++] Respect Windows Store app CRT restrictions 2017-04-06 04:47:49 +00:00
cstring Fix overload sets of strchr, strpbrk, strrchr, memchr and strstr from 2016-02-10 00:59:02 +00:00
ctgmath
ctime
ctype.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
cwchar [libc++] Remove unnecessary MSVCRT exclusions 2016-11-08 03:31:42 +00:00
cwctype Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00
deque [libc++] Fix PR34898 - vector iterator constructors and assign method perform push_back instead of emplace_back. 2017-10-17 13:03:17 +00:00
errno.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
exception [libc++] Support Microsoft ABI without vcruntime headers 2017-10-09 19:25:17 +00:00
float.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
forward_list [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
fstream Make pbump (internally) handle sizes bigger than MAX_INT. Fixes PR#33725 - thanks to Jonathan Wakely for the report 2017-09-12 15:00:43 +00:00
functional Fix PR34298 - Allow std::function with an incomplete return type. 2017-09-10 23:41:20 +00:00
future Add markup for libc++ dylib availability 2017-05-04 17:08:54 +00:00
initializer_list Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros for std::initializer_list 2017-04-18 23:09:36 +00:00
inttypes.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
iomanip Move 'quoted' for string_view from <string_view> to <iomanip> (where the other versions of 'quoted' live. No functional change. 2016-10-27 15:10:07 +00:00
ios Cleanup usages of _LIBCPP_HAS_NO_<c++11-feature> in <bitset>, <ios>, <locale>, and <iterator> 2017-04-19 01:34:08 +00:00
iosfwd [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
iostream
istream [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
iterator Remove addtional parameters in function std::next() and std::prev() 2017-07-24 22:17:05 +00:00
limits Fix more unreserved names 2017-06-01 02:29:37 +00:00
limits.h [libcxx] Fix gcc build. 2016-10-10 15:56:01 +00:00
list Fix misguided error message in debug mode. No functional change. Fixes PR#34966 2017-10-23 16:46:44 +00:00
locale Make pbump (internally) handle sizes bigger than MAX_INT. Fixes PR#33725 - thanks to Jonathan Wakely for the report 2017-09-12 15:00:43 +00:00
locale.h [libcxx] Implement locale.h to fix modules build 2016-11-19 01:14:15 +00:00
map Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::map and std::multimap 2017-04-18 21:08:06 +00:00
math.h cmath: Skip Libc for integral types in isinf, etc. 2017-04-21 23:14:55 +00:00
memory Fix accidental ADL in std::allocator_traits meta-programming. 2017-09-15 00:31:38 +00:00
module.modulemap [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
mutex Implement P0739R0: 'Some improvements to class template argument deduction integration into the standard library' This is an API change (not ABI change) due to a late change in the c++17 standard 2017-07-27 17:44:03 +00:00
new [libc++] Support Microsoft ABI without vcruntime headers 2017-10-09 19:25:17 +00:00
numeric Implement inclusive_scan/transform_inclusive_scan for C++17. 2017-06-23 05:12:42 +00:00
optional optional: Implement LWG 2900 and P0602 2017-07-09 17:15:49 +00:00
ostream Add markup for libc++ dylib availability 2017-05-04 17:08:54 +00:00
queue Cleanup _LIBCPP_HAS_NO_<c++11-feature> for std::queue and std::priority_queue. 2017-04-18 21:23:18 +00:00
random Revert 313789 because gcc doesn't like it 2017-09-20 19:38:43 +00:00
ratio [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
regex Fix an unsigned integer overflow in regex that lead to a bad memory access. Found by OSS-Fuzz 2017-10-19 22:10:41 +00:00
scoped_allocator [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
set Cleanup _LIBCPP_HAS_NO_<c++11-feature> for std::set and std::multiset 2017-04-18 20:58:03 +00:00
setjmp.h Cleanup foo.h headers and __config to work in C 2015-11-06 06:30:12 +00:00
shared_mutex [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
sstream Make pbump (internally) handle sizes bigger than MAX_INT. Fixes PR#33725 - thanks to Jonathan Wakely for the report 2017-09-12 15:00:43 +00:00
stack Cleanup _LIBCPP_HAS_NO_<c++11-feature> macro uses in std::stack. 2017-04-18 21:16:26 +00:00
stdbool.h Add stdbool.h wrapper for libc++ 2016-02-20 00:16:41 +00:00
stddef.h Check for musl-libc's max_align_t in addition to other variants. 2017-02-10 01:27:42 +00:00
stdexcept Fix more unreserved names 2017-06-01 02:29:37 +00:00
stdint.h [include] Declare __STDC_*_MACROS for C++11 compat in old libc 2016-09-26 20:20:00 +00:00
stdio.h Fix Libc++ build with MinGW64 2017-05-31 22:14:05 +00:00
stdlib.h [libc++] Refactor Windows support headers. 2017-05-10 20:57:45 +00:00
streambuf Make pbump (internally) handle sizes bigger than MAX_INT. Fixes PR#33725 - thanks to Jonathan Wakely for the report 2017-09-12 15:00:43 +00:00
string Refactor _LIBCPP_<LITTLE|BIG>_ENDIAN 2017-10-17 13:16:01 +00:00
string.h Instead of asking glibc to provide correct C++ signatures for <string.h> 2016-02-11 23:51:02 +00:00
string_view Mark string_view's constructor from (ptr,len) as noexcept (an extension). Update the tests to check this (and other noexcept bits 2017-10-24 16:30:06 +00:00
strstream Cleanup _LIBCPP_HAS_NO_<c++11-feature> in the input.output library 2017-04-18 23:38:41 +00:00
system_error Add include of <string> to <system_error>, since things in there return strings. Fixes PR#34529. 2017-09-11 16:05:42 +00:00
tgmath.h
thread [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
tuple Add C++17 explicit deduction guides to std::pair. 2017-10-04 00:04:26 +00:00
type_traits Fix PR34298 - Allow std::function with an incomplete return type. 2017-09-10 23:41:20 +00:00
typeindex [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
typeinfo [libc++] Remove unnecessary struct tag 2017-09-15 06:19:31 +00:00
unordered_map Cleanup _LIBCPP_HAS_NO_<c++11-feature> in std::unordered_map and std::unordered_multimap 2017-04-18 22:50:56 +00:00
unordered_set Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in std::unordered_set and std::unordered_multiset 2017-04-18 22:37:32 +00:00
utility Add C++17 explicit deduction guides to std::pair. 2017-10-04 00:04:26 +00:00
valarray [Libc++] Use #pragma push_macro/pop_macro to better handle min/max on Windows 2017-05-31 22:07:49 +00:00
variant Add a missing SFINAE condition to the `variant`'s converting constructor. 2017-06-19 08:25:57 +00:00
vector [libc++] Fix PR34898 - vector iterator constructors and assign method perform push_back instead of emplace_back. 2017-10-17 13:03:17 +00:00
wchar.h [libc++] Account for Microsoft CRT const overloads 2017-09-15 18:49:34 +00:00
wctype.h Split <wctype.h> out of <cwctype>. 2015-10-09 19:57:37 +00:00