Date: Sun, 1 Dec 2024 12:54:16 GMT From: Dimitry Andric <dim@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: 816fc3e8b8b7 - stable/13 - libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83: Message-ID: <202412011254.4B1CsGft093872@gitrepo.freebsd.org>
next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=816fc3e8b8b73a92c908875c5b8b2924d1d2ec58 commit 816fc3e8b8b73a92c908875c5b8b2924d1d2ec58 Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-08-05 20:26:58 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-12-01 12:32:41 +0000 libcxx-compat: revert llvmorg-19-init-5639-ga10aa4485e83: [libc++] Simplify the implementation of remove_reference (#85207) GCC 13 introduced the type trait `__remove_reference`. We can simplify the implementation of `remove_reference` a bit by using it. PR: 280562 MFC after: 1 month (cherry picked from commit a7b2d7f261b81d141195c4204fdc4a0dc97a146e) --- .../libcxx/include/__type_traits/remove_reference.h | 14 +++++++------- contrib/llvm-project/libcxx/include/cwchar | 4 ---- contrib/llvm-project/libcxx/include/execution | 4 ---- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/contrib/llvm-project/libcxx/include/__type_traits/remove_reference.h b/contrib/llvm-project/libcxx/include/__type_traits/remove_reference.h index ba67891758ad..fd66417bd84f 100644 --- a/contrib/llvm-project/libcxx/include/__type_traits/remove_reference.h +++ b/contrib/llvm-project/libcxx/include/__type_traits/remove_reference.h @@ -10,6 +10,7 @@ #define _LIBCPP___TYPE_TRAITS_REMOVE_REFERENCE_H #include <__config> +#include <cstddef> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header @@ -25,16 +26,15 @@ struct remove_reference { template <class _Tp> using __libcpp_remove_reference_t = __remove_reference_t(_Tp); -#elif __has_builtin(__remove_reference) -template <class _Tp> -struct remove_reference { - using type _LIBCPP_NODEBUG = __remove_reference(_Tp); -}; +#else +// clang-format off +template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference {typedef _LIBCPP_NODEBUG _Tp type;}; +template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&> {typedef _LIBCPP_NODEBUG _Tp type;}; +template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_reference<_Tp&&> {typedef _LIBCPP_NODEBUG _Tp type;}; +// clang-format on template <class _Tp> using __libcpp_remove_reference_t = typename remove_reference<_Tp>::type; -#else -# error "remove_reference not implemented!" #endif // __has_builtin(__remove_reference_t) #if _LIBCPP_STD_VER >= 14 diff --git a/contrib/llvm-project/libcxx/include/cwchar b/contrib/llvm-project/libcxx/include/cwchar index dd16eaeaa07f..7abcc3440947 100644 --- a/contrib/llvm-project/libcxx/include/cwchar +++ b/contrib/llvm-project/libcxx/include/cwchar @@ -258,8 +258,4 @@ _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX14 _Tp* __constexpr_wmemchr(_Tp _LIBCPP_END_NAMESPACE_STD -#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 -# include <cstddef> -#endif - #endif // _LIBCPP_CWCHAR diff --git a/contrib/llvm-project/libcxx/include/execution b/contrib/llvm-project/libcxx/include/execution index 94d434b2e460..822ffa1fd3eb 100644 --- a/contrib/llvm-project/libcxx/include/execution +++ b/contrib/llvm-project/libcxx/include/execution @@ -142,8 +142,4 @@ _LIBCPP_END_NAMESPACE_STD #endif // !defined(_LIBCPP_HAS_NO_INCOMPLETE_PSTL) && _LIBCPP_STD_VER >= 17 -#if !defined(_LIBCPP_REMOVE_TRANSITIVE_INCLUDES) && _LIBCPP_STD_VER <= 20 -# include <cstddef> -#endif - #endif // _LIBCPP_EXECUTION
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202412011254.4B1CsGft093872>