diff --git a/libcxx/include/__type_traits/is_nothrow_constructible.h b/libcxx/include/__type_traits/is_nothrow_constructible.h --- a/libcxx/include/__type_traits/is_nothrow_constructible.h +++ b/libcxx/include/__type_traits/is_nothrow_constructible.h @@ -22,7 +22,8 @@ _LIBCPP_BEGIN_NAMESPACE_STD -#if __has_builtin(__is_nothrow_constructible) +// GCC is disabled due to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106611 +#if __has_builtin(__is_nothrow_constructible) && !defined(_LIBCPP_COMPILER_GCC) template < class _Tp, class... _Args> struct _LIBCPP_TEMPLATE_VIS is_nothrow_constructible diff --git a/libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp b/libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp --- a/libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp +++ b/libcxx/test/std/algorithms/robust_against_adl.compile.pass.cpp @@ -11,7 +11,7 @@ // https://buildkite.com/llvm-project/libcxx-ci/builds/15823#0184fc0b-d56b-4774-9e1d-35fe24e09e37 // It seems like the CI gcc version is buggy. I can't reproduce the failure on my system or on // godbolt (https://godbolt.org/z/rsPv8e8fn). -// UNSUPPORTED: gcc-12 +// UNSUPPORTED: gcc-12, gcc-13 #include #include diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.char_array.pass.cpp @@ -7,7 +7,7 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // TODO FMT __builtin_memcpy isn't constexpr in GCC -// UNSUPPORTED: gcc-12 +// UNSUPPORTED: gcc-12, gcc-13 // 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 --- a/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.rel/is_convertible.pass.cpp @@ -44,7 +44,6 @@ } typedef void Function(); -typedef void ConstFunction() const; typedef char Array[1]; struct StringType { @@ -115,16 +114,6 @@ test_is_not_convertible (); test_is_not_convertible (); - // Non-referencable function type - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - static_assert((!std::is_convertible::value), ""); - // Array test_is_not_convertible (); test_is_not_convertible (); diff --git a/libcxx/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp b/libcxx/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp --- a/libcxx/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp +++ b/libcxx/test/std/utilities/meta/meta.rel/is_convertible_fallback.pass.cpp @@ -10,6 +10,8 @@ // ADDITIONAL_COMPILE_FLAGS: -D _LIBCPP_USE_IS_CONVERTIBLE_FALLBACK +// UNSUPPORTED: gcc-13 + // type_traits // is_convertible diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -28,7 +28,7 @@ # LLVM RELEASE bump remove compiler ToT - 3, e.g. "Clang 15" LLVM_STABLE_VERSION: "16" LLVM_HEAD_VERSION: "17" - GCC_STABLE_VERSION: "12" + GCC_STABLE_VERSION: "13" steps: # # Light pre-commit tests for things like formatting or when people forget diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py --- a/libcxx/utils/libcxx/test/params.py +++ b/libcxx/utils/libcxx/test/params.py @@ -54,6 +54,14 @@ # TODO(philnik) This fails with the PSTL. "-Wno-unknown-pragmas", + + # TODO: Find out why GCC warns in lots of places (is this a problem with always_inline?) + "-Wno-dangling-reference", + "-Wno-mismatched-new-delete", + "-Wno-redundant-move", + + # This doesn't make sense in real code, but we have to test it because the standard requires us to not break + "-Wno-self-move", ] _allStandards = ["c++03", "c++11", "c++14", "c++17", "c++20", "c++23", "c++26"]