[libc++] Remove a few GCC workarounds that aren't needed anymore (#156290)

This commit is contained in:
Nikolas Klauser 2025-09-01 16:36:55 +02:00 committed by GitHub
parent c6286b30bd
commit 4dbfde6b69
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 1 additions and 10 deletions

View File

@ -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

View File

@ -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() {

View File

@ -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), "");