git: 04f5b79cfa49 - main - libcxx-compat: revert llvmorg-19-init-18062-g4dfa75c663e5:
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 23 Oct 2024 18:30:35 UTC
The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/src/commit/?id=04f5b79cfa4972b371e7751dee5bbfaa91f2f2fc commit 04f5b79cfa4972b371e7751dee5bbfaa91f2f2fc Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2024-08-05 20:16:04 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2024-10-23 18:26:40 +0000 libcxx-compat: revert llvmorg-19-init-18062-g4dfa75c663e5: [libc++] Merge is_scoped_enum.h into is_enum.h (#99458) PR: 280562 MFC after: 1 month --- .../libcxx/include/__type_traits/is_enum.h | 10 ------- .../libcxx/include/__type_traits/is_scoped_enum.h | 33 ++++++++++++++++++++++ .../llvm-project/libcxx/include/module.modulemap | 1 + contrib/llvm-project/libcxx/include/type_traits | 4 +++ 4 files changed, 38 insertions(+), 10 deletions(-) diff --git a/contrib/llvm-project/libcxx/include/__type_traits/is_enum.h b/contrib/llvm-project/libcxx/include/__type_traits/is_enum.h index 2fab6db2c8d5..77ca3ea10874 100644 --- a/contrib/llvm-project/libcxx/include/__type_traits/is_enum.h +++ b/contrib/llvm-project/libcxx/include/__type_traits/is_enum.h @@ -26,16 +26,6 @@ template <class _Tp> inline constexpr bool is_enum_v = __is_enum(_Tp); #endif -#if _LIBCPP_STD_VER >= 23 - -template <class _Tp> -struct _LIBCPP_TEMPLATE_VIS is_scoped_enum : bool_constant<__is_scoped_enum(_Tp)> {}; - -template <class _Tp> -inline constexpr bool is_scoped_enum_v = __is_scoped_enum(_Tp); - -#endif // _LIBCPP_STD_VER >= 23 - _LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP___TYPE_TRAITS_IS_ENUM_H diff --git a/contrib/llvm-project/libcxx/include/__type_traits/is_scoped_enum.h b/contrib/llvm-project/libcxx/include/__type_traits/is_scoped_enum.h new file mode 100644 index 000000000000..cb3e25cf5733 --- /dev/null +++ b/contrib/llvm-project/libcxx/include/__type_traits/is_scoped_enum.h @@ -0,0 +1,33 @@ +//===----------------------------------------------------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef _LIBCPP___TYPE_TRAITS_IS_SCOPED_ENUM_H +#define _LIBCPP___TYPE_TRAITS_IS_SCOPED_ENUM_H + +#include <__config> +#include <__type_traits/integral_constant.h> + +#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) +# pragma GCC system_header +#endif + +_LIBCPP_BEGIN_NAMESPACE_STD + +#if _LIBCPP_STD_VER >= 23 + +template <class _Tp> +struct _LIBCPP_TEMPLATE_VIS is_scoped_enum : bool_constant<__is_scoped_enum(_Tp)> {}; + +template <class _Tp> +inline constexpr bool is_scoped_enum_v = __is_scoped_enum(_Tp); + +#endif // _LIBCPP_STD_VER >= 23 + +_LIBCPP_END_NAMESPACE_STD + +#endif // _LIBCPP___TYPE_TRAITS_IS_SCOPED_ENUM_H diff --git a/contrib/llvm-project/libcxx/include/module.modulemap b/contrib/llvm-project/libcxx/include/module.modulemap index 13d0dce34d97..d76659664f75 100644 --- a/contrib/llvm-project/libcxx/include/module.modulemap +++ b/contrib/llvm-project/libcxx/include/module.modulemap @@ -2013,6 +2013,7 @@ module std_private_type_traits_is_scalar [system header "__type_traits/is_scalar.h" export std_private_type_traits_is_null_pointer } +module std_private_type_traits_is_scoped_enum [system] { header "__type_traits/is_scoped_enum.h" } module std_private_type_traits_is_signed [system] { header "__type_traits/is_signed.h" } module std_private_type_traits_is_signed_integer [system] { header "__type_traits/is_signed_integer.h" } module std_private_type_traits_is_specialization [system] { header "__type_traits/is_specialization.h" } diff --git a/contrib/llvm-project/libcxx/include/type_traits b/contrib/llvm-project/libcxx/include/type_traits index 7f231cd09df5..ffa137338b6a 100644 --- a/contrib/llvm-project/libcxx/include/type_traits +++ b/contrib/llvm-project/libcxx/include/type_traits @@ -514,6 +514,10 @@ namespace std # include <__type_traits/unwrap_ref.h> #endif +#if _LIBCPP_STD_VER >= 23 +# include <__type_traits/is_scoped_enum.h> +#endif + #include <version> #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)