[libcxx-commits] [libcxx] [libc++] Remove a few GCC workarounds that aren't needed anymore (PR #156290)
via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Sep 1 07:37:28 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libcxx
Author: Nikolas Klauser (philnik777)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/156290.diff
3 Files Affected:
- (modified) libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp (-3)
- (modified) libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp (+1-4)
- (modified) libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp (-3)
``````````diff
diff --git a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
index 1dfdc609e6366..e999b20345a54 100644
--- a/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
+++ b/libcxx/test/std/iterators/iterator.requirements/indirectcallable/indirectinvocable/indirect_result_t.compile.pass.cpp
@@ -34,8 +34,6 @@ static_assert(!has_indirect_result<int, int*>); // int isn't invocable
// Test ADL-proofing (P2538R1)
#if TEST_STD_VER >= 26 || defined(_LIBCPP_VERSION)
-// TODO: Enable this on GCC once this bug is fixed: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111419
-#ifndef TEST_COMPILER_GCC
struct Incomplete;
template<class T> struct Holder { T t; };
static_assert(std::same_as<std::indirect_result_t<int (&)(int), int*>, int>);
@@ -45,4 +43,3 @@ static_assert(std::same_as<std::indirect_result_t<int (&)(Holder<
static_assert(std::same_as<std::indirect_result_t<Holder<Incomplete>&(&)(Holder<Incomplete>*), Holder<Incomplete>**>, Holder<Incomplete>&>);
static_assert(std::same_as<std::indirect_result_t<Holder<Incomplete>*(&)(Holder<Incomplete>*), Holder<Incomplete>**>, Holder<Incomplete>*>);
#endif
-#endif
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
index 36b3aa8955caf..86e08284a03c8 100644
--- a/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
+++ b/libcxx/test/std/utilities/memory/specialized.algorithms/specialized.destroy/ranges_destroy_at.pass.cpp
@@ -52,10 +52,7 @@ struct VirtualCountedBase {
struct VirtualCountedDerived : VirtualCountedBase {
constexpr VirtualCountedDerived(int& count_ref) : VirtualCountedBase(count_ref) {}
-
- // Without a definition, GCC gives an error when the destructor is invoked in a constexpr context (see
- // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93413).
- constexpr ~VirtualCountedDerived() override {}
+ constexpr ~VirtualCountedDerived() override = default;
};
constexpr bool test() {
diff --git a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
index b96c9b11e2962..804650fde3f3e 100644
--- a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
+++ b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp
@@ -117,12 +117,9 @@ int main(int, char**)
// Non-referencable function type
static_assert((!std::is_convertible<ConstFunction, Function>::value), "");
-// TODO(LLVM-19): Re-enable this once we switch to GCC 14. This is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109680
-#ifndef TEST_COMPILER_GCC
static_assert((!std::is_convertible<ConstFunction, Function*>::value), "");
static_assert((!std::is_convertible<ConstFunction, Function&>::value), "");
static_assert((!std::is_convertible<ConstFunction, Function&&>::value), "");
-#endif
static_assert((!std::is_convertible<Function*, ConstFunction>::value), "");
static_assert((!std::is_convertible<Function&, ConstFunction>::value), "");
static_assert((!std::is_convertible<ConstFunction, ConstFunction>::value), "");
``````````
</details>
https://github.com/llvm/llvm-project/pull/156290
More information about the libcxx-commits
mailing list