Skip to content

Conversation

@philnik777
Copy link
Contributor

No description provided.

@philnik777 philnik777 force-pushed the simplify_type_trait_uses branch from 7969946 to e6c955a Compare November 2, 2024 13:31
@philnik777 philnik777 force-pushed the simplify_type_trait_uses branch from e6c955a to 128a5e0 Compare November 4, 2024 13:38
@philnik777 philnik777 marked this pull request as ready for review November 4, 2024 17:58
@philnik777 philnik777 requested a review from a team as a code owner November 4, 2024 17:58
@philnik777 philnik777 merged commit de87dda into llvm:main Nov 4, 2024
63 checks passed
@philnik777 philnik777 deleted the simplify_type_trait_uses branch November 4, 2024 17:58
@llvmbot llvmbot added the libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi. label Nov 4, 2024
@llvmbot
Copy link
Member

llvmbot commented Nov 4, 2024

@llvm/pr-subscribers-libcxx

Author: Nikolas Klauser (philnik777)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/114025.diff

8 Files Affected:

  • (modified) libcxx/include/__hash_table (+1)
  • (modified) libcxx/include/__memory/shared_ptr.h (+2)
  • (modified) libcxx/include/__memory/uninitialized_algorithms.h (+1)
  • (modified) libcxx/include/__tuple/make_tuple_types.h (+2-2)
  • (modified) libcxx/include/new (+2-3)
  • (modified) libcxx/include/optional (+2)
  • (modified) libcxx/include/variant (+1)
  • (modified) libcxx/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp (+2-3)
diff --git a/libcxx/include/__hash_table b/libcxx/include/__hash_table
index 8e4cb3c914dc43..a0c72f4c205413 100644
--- a/libcxx/include/__hash_table
+++ b/libcxx/include/__hash_table
@@ -36,6 +36,7 @@
 #include <__type_traits/is_nothrow_constructible.h>
 #include <__type_traits/is_pointer.h>
 #include <__type_traits/is_reference.h>
+#include <__type_traits/is_same.h>
 #include <__type_traits/is_swappable.h>
 #include <__type_traits/remove_const.h>
 #include <__type_traits/remove_cvref.h>
diff --git a/libcxx/include/__memory/shared_ptr.h b/libcxx/include/__memory/shared_ptr.h
index 0722b3f3e6d543..31650a50ff637f 100644
--- a/libcxx/include/__memory/shared_ptr.h
+++ b/libcxx/include/__memory/shared_ptr.h
@@ -42,9 +42,11 @@
 #include <__type_traits/is_constructible.h>
 #include <__type_traits/is_convertible.h>
 #include <__type_traits/is_reference.h>
+#include <__type_traits/is_same.h>
 #include <__type_traits/is_unbounded_array.h>
 #include <__type_traits/nat.h>
 #include <__type_traits/negation.h>
+#include <__type_traits/remove_cv.h>
 #include <__type_traits/remove_extent.h>
 #include <__type_traits/remove_reference.h>
 #include <__utility/declval.h>
diff --git a/libcxx/include/__memory/uninitialized_algorithms.h b/libcxx/include/__memory/uninitialized_algorithms.h
index 38517a2292d3a0..627ee44e808d9c 100644
--- a/libcxx/include/__memory/uninitialized_algorithms.h
+++ b/libcxx/include/__memory/uninitialized_algorithms.h
@@ -25,6 +25,7 @@
 #include <__type_traits/extent.h>
 #include <__type_traits/is_array.h>
 #include <__type_traits/is_constant_evaluated.h>
+#include <__type_traits/is_same.h>
 #include <__type_traits/is_trivially_assignable.h>
 #include <__type_traits/is_trivially_constructible.h>
 #include <__type_traits/is_trivially_relocatable.h>
diff --git a/libcxx/include/__tuple/make_tuple_types.h b/libcxx/include/__tuple/make_tuple_types.h
index 53e98c3d6e9757..024e9c524b527a 100644
--- a/libcxx/include/__tuple/make_tuple_types.h
+++ b/libcxx/include/__tuple/make_tuple_types.h
@@ -18,7 +18,7 @@
 #include <__tuple/tuple_size.h>
 #include <__tuple/tuple_types.h>
 #include <__type_traits/copy_cvref.h>
-#include <__type_traits/remove_cv.h>
+#include <__type_traits/remove_cvref.h>
 #include <__type_traits/remove_reference.h>
 
 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
@@ -58,7 +58,7 @@ template <class _Tp,
           bool _SameSize = (_Ep == tuple_size<__libcpp_remove_reference_t<_Tp> >::value)>
 struct __make_tuple_types {
   static_assert(_Sp <= _Ep, "__make_tuple_types input error");
-  using _RawTp = __remove_cv_t<__libcpp_remove_reference_t<_Tp> >;
+  using _RawTp = __remove_cvref_t<_Tp>;
   using _Maker = __make_tuple_types_flat<_RawTp, typename __make_tuple_indices<_Ep, _Sp>::type>;
   using type   = typename _Maker::template __apply_quals<_Tp>;
 };
diff --git a/libcxx/include/new b/libcxx/include/new
index 290ad9e97f8ded..5318ce533ea929 100644
--- a/libcxx/include/new
+++ b/libcxx/include/new
@@ -90,8 +90,7 @@ void  operator delete[](void* ptr, void*) noexcept;
 #include <__cstddef/size_t.h>
 #include <__exception/exception.h>
 #include <__type_traits/is_function.h>
-#include <__type_traits/is_same.h>
-#include <__type_traits/remove_cv.h>
+#include <__type_traits/is_void.h>
 #include <__verbose_abort>
 #include <version>
 
@@ -342,7 +341,7 @@ inline _LIBCPP_HIDE_FROM_ABI void __libcpp_deallocate_unsized(void* __ptr, size_
 template <class _Tp>
 [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR _Tp* __launder(_Tp* __p) _NOEXCEPT {
   static_assert(!(is_function<_Tp>::value), "can't launder functions");
-  static_assert(!(is_same<void, __remove_cv_t<_Tp> >::value), "can't launder cv-void");
+  static_assert(!is_void<_Tp>::value, "can't launder cv-void");
   return __builtin_launder(__p);
 }
 
diff --git a/libcxx/include/optional b/libcxx/include/optional
index b9dcf9053633f0..7ad6a9e116941f 100644
--- a/libcxx/include/optional
+++ b/libcxx/include/optional
@@ -207,6 +207,7 @@ namespace std {
 #include <__type_traits/is_nothrow_constructible.h>
 #include <__type_traits/is_object.h>
 #include <__type_traits/is_reference.h>
+#include <__type_traits/is_same.h>
 #include <__type_traits/is_scalar.h>
 #include <__type_traits/is_swappable.h>
 #include <__type_traits/is_trivially_assignable.h>
@@ -215,6 +216,7 @@ namespace std {
 #include <__type_traits/is_trivially_relocatable.h>
 #include <__type_traits/negation.h>
 #include <__type_traits/remove_const.h>
+#include <__type_traits/remove_cv.h>
 #include <__type_traits/remove_cvref.h>
 #include <__type_traits/remove_reference.h>
 #include <__utility/declval.h>
diff --git a/libcxx/include/variant b/libcxx/include/variant
index ee80fb0b5ab5be..6e752556a888dd 100644
--- a/libcxx/include/variant
+++ b/libcxx/include/variant
@@ -245,6 +245,7 @@ namespace std {
 #include <__type_traits/is_nothrow_assignable.h>
 #include <__type_traits/is_nothrow_constructible.h>
 #include <__type_traits/is_reference.h>
+#include <__type_traits/is_same.h>
 #include <__type_traits/is_swappable.h>
 #include <__type_traits/is_trivially_assignable.h>
 #include <__type_traits/is_trivially_constructible.h>
diff --git a/libcxx/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp b/libcxx/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp
index 40aba0a84a0805..404cdbcb7c49dd 100644
--- a/libcxx/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp
+++ b/libcxx/test/std/language.support/support.dynamic/ptr.launder/launder.pass.cpp
@@ -12,10 +12,9 @@
 
 // UNSUPPORTED: c++03, c++11, c++14
 
-#include <new>
 #include <cassert>
-
-#include "test_macros.h"
+#include <new>
+#include <type_traits>
 
 constexpr int gi = 5;
 constexpr float gf = 8.f;

PhilippRados pushed a commit to PhilippRados/llvm-project that referenced this pull request Nov 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

libc++ libc++ C++ Standard Library. Not GNU libstdc++. Not libc++abi.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants