From: Paolo Carlini Date: Sun, 28 Aug 2011 21:05:48 +0000 (+0000) Subject: move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. X-Git-Tag: upstream/12.2.0~81818 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=75f5cbb17be9159186a26070ab66587b01646fd8;p=platform%2Fupstream%2Fgcc.git move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. 2011-08-28 Paolo Carlini * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove workaround for c++/49045. * include/bits/algorithmfwd.h: Likewise. From-SVN: r178147 --- diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index d0bd7d993d3..69e297de943 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2011-08-28 Paolo Carlini + + * include/bits/move.h (swap(_Tp(&)[_Nm], _Tp(&)[_Nm])): Remove + workaround for c++/49045. + * include/bits/algorithmfwd.h: Likewise. + 2011-08-25 Tom Tromey * testsuite/libstdc++-prettyprinters/simple.cc: New file. diff --git a/libstdc++-v3/include/bits/algorithmfwd.h b/libstdc++-v3/include/bits/algorithmfwd.h index 7bb9880ebeb..cc0b98ed7d2 100644 --- a/libstdc++-v3/include/bits/algorithmfwd.h +++ b/libstdc++-v3/include/bits/algorithmfwd.h @@ -558,9 +558,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION template void - swap(_Tp (&)[_Nm], _Tp (&)[_Nm]) + swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) #ifdef __GXX_EXPERIMENTAL_CXX0X__ - noexcept(__is_nothrow_swappable<_Tp>::value) + noexcept(noexcept(swap(*__a, *__b))) #endif ; diff --git a/libstdc++-v3/include/bits/move.h b/libstdc++-v3/include/bits/move.h index 0af8fdac0b5..f5beb22bb8d 100644 --- a/libstdc++-v3/include/bits/move.h +++ b/libstdc++-v3/include/bits/move.h @@ -152,21 +152,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __b = _GLIBCXX_MOVE(__tmp); } -#ifdef __GXX_EXPERIMENTAL_CXX0X__ - // To work around c++/49045. - template - struct __is_nothrow_swappable - { static const bool value = noexcept(swap(std::declval<_Tp&>(), - std::declval<_Tp&>())); }; -#endif - // _GLIBCXX_RESOLVE_LIB_DEFECTS // DR 809. std::swap should be overloaded for array types. template inline void swap(_Tp (&__a)[_Nm], _Tp (&__b)[_Nm]) #ifdef __GXX_EXPERIMENTAL_CXX0X__ - noexcept(__is_nothrow_swappable<_Tp>::value) + noexcept(noexcept(swap(*__a, *__b))) #endif { for (size_t __n = 0; __n < _Nm; ++__n)