[libc++] Change forward_list::swap to use propagate_on_container_swap for noexcept specification

The current implementation of `std::forward_list::swap` uses
`propagate_on_container_move_assignment` for `noexcept` specification.
This patch changes it to use `propagate_on_container_swap`, as it should.

Fixes https://llvm.org/PR50224.

Differential Revision: https://reviews.llvm.org/D101899
This commit is contained in:
Hyundeok Park 2021-06-22 12:37:51 -04:00 committed by Louis Dionne
parent 78d404a11d
commit 7adf713a5e
1 changed files with 2 additions and 2 deletions

View File

@ -534,7 +534,7 @@ public:
#if _LIBCPP_STD_VER >= 14 #if _LIBCPP_STD_VER >= 14
_NOEXCEPT; _NOEXCEPT;
#else #else
_NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
__is_nothrow_swappable<__node_allocator>::value); __is_nothrow_swappable<__node_allocator>::value);
#endif #endif
protected: protected:
@ -599,7 +599,7 @@ __forward_list_base<_Tp, _Alloc>::swap(__forward_list_base& __x)
#if _LIBCPP_STD_VER >= 14 #if _LIBCPP_STD_VER >= 14
_NOEXCEPT _NOEXCEPT
#else #else
_NOEXCEPT_(!__node_traits::propagate_on_container_move_assignment::value || _NOEXCEPT_(!__node_traits::propagate_on_container_swap::value ||
__is_nothrow_swappable<__node_allocator>::value) __is_nothrow_swappable<__node_allocator>::value)
#endif #endif
{ {