llvm-project/libcxx/include/experimental
Eric Fiselier e02ed1c255 Diagnose when reverse_iterator is used on path::iterator.
path::iterator isn't a strictly conforming iterator. Specifically
it stashes the current element inside the iterator. This leads to
UB when used with reverse_iterator since it requires the element
to outlive the lifetime of the iterator.

This patch adds a static_assert inside reverse_iterator to disallow
"stashing iterator types", and it tags path::iterator as such a type.

Additionally this patch removes all uses of reverse_iterator<path::iterator>
within the tests.

llvm-svn: 300164
2017-04-13 02:54:13 +00:00
..
__config Implement std::experimental::propagate_const from LFTS v2 2016-06-19 19:34:13 +00:00
__memory Add <experimental/memory_resource> 2016-05-07 01:04:55 +00:00
algorithm Replace identifiers called `__out` because Windows.h #defines it. 2017-01-07 11:27:06 +00:00
any [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
chrono Define a new macro: _LIBCPP_HAS_NO_VARIABLE_TEMPLATES and use it. No functionality change. 2015-03-17 15:30:22 +00:00
deque Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
dynarray [libc++] Tolerate presence of __deallocate macro 2017-01-07 03:01:24 +00:00
filesystem Diagnose when reverse_iterator is used on path::iterator. 2017-04-13 02:54:13 +00:00
forward_list Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
functional Implement P0253R1: Fixing a design mistake in the searchers interface. 2016-03-08 15:12:52 +00:00
iterator Replace identifiers called `__out` because Windows.h #defines it. 2017-01-07 11:27:06 +00:00
list Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
map Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
memory_resource remove max_size() extension from polymorphic_allocator. It is unneeded 2017-03-02 22:10:14 +00:00
numeric Make lcm/gcd work better in edge cases. Fixes a UBSAN failure. 2017-02-10 20:49:08 +00:00
optional Restore the _NOEXCEPT on the dtor of bad_optional_access. Destructors are noexcept by default, so it's not really needed, but the other exception classes have the _NOEXCEPT, and gcc complains if these are missing. I think we should remove them all - but not today. 2017-02-05 20:52:32 +00:00
propagate_const Move _LIBCPP_INLINE_VISIBILITY to first declaration in <propagate_const> 2016-09-16 02:16:23 +00:00
ratio Fixed an 'extra tokens at end of #endif directive' warning in experimental/ratio 2015-04-23 16:45:08 +00:00
regex Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
set Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
string Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
string_view Revert "Rework fix for PR19460 - Use explicit bool as an extension instead." 2017-01-13 18:03:46 +00:00
system_error Define a new macro: _LIBCPP_HAS_NO_VARIABLE_TEMPLATES and use it. No functionality change. 2015-03-17 15:30:22 +00:00
tuple Add 'is_callable' and 'is_nothrow_callable' traits and cleanup INVOKE. 2016-04-20 00:14:32 +00:00
type_traits [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
unordered_map Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
unordered_set Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00
utility [NFC] Rename _LIBCPP_TYPE_VIS_ONLY to _LIBCPP_TEMPLATE_VIS 2017-01-04 23:56:00 +00:00
vector Add experimental container alias templates for PMRs 2016-05-07 03:09:55 +00:00