diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst index b953e9048732..71674e75904a 100644 --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -107,7 +107,7 @@ Compiler Versions Restrictions Support policy Clang 13, 14 latest two stable releases per `LLVM's release page `_ AppleClang 13 latest stable release per `Xcode's release page `_ Open XL 17.1 (AIX) latest stable release per `Open XL's documentation page `_ -GCC 11 In C++11 or later only latest stable release per `GCC's release page `_ +GCC 12 In C++11 or later only latest stable release per `GCC's release page `_ ============ =============== ========================== ===================== Libc++ also supports common platforms and architectures: diff --git a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp index 1395e626362a..09a5dcfb82ed 100644 --- a/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp +++ b/libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp @@ -14,8 +14,8 @@ // TODO: Investigate this failure, which happens only with the Bootstrapping build. // UNSUPPORTED: clang-13, clang-14, clang-15 -// TODO: Investigate this failure on GCC 11.2 (in Ubuntu Jammy) -// UNSUPPORTED: gcc-11.2 +// TODO: Investigate this failure on GCC 12 (in Ubuntu Jammy) +// UNSUPPORTED: gcc-12 // RUN: %{cxx} %{flags} %s -o %t.exe %{compile_flags} -g %{link_flags} // Ensure locale-independence for unicode tests. diff --git a/libcxx/test/std/ranges/range.factories/range.single.view/assign.pass.cpp b/libcxx/test/std/ranges/range.factories/range.single.view/assign.pass.cpp index def414e26b02..349c4fb2d58e 100644 --- a/libcxx/test/std/ranges/range.factories/range.single.view/assign.pass.cpp +++ b/libcxx/test/std/ranges/range.factories/range.single.view/assign.pass.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// // UNSUPPORTED: c++03, c++11, c++14, c++17 -// UNSUPPORTED: gcc-11 // UNSUPPORTED: libcpp-has-no-incomplete-ranges // Tests that is a . diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp index 75a83a043bb5..bd48281a11d3 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c_string.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c_string.pass.cpp index 293671338419..21b906eba065 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c_string.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.c_string.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // 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 index b8ac0cf0ac24..15c36bd837b7 100644 --- 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,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT __builtin_memcpy isn't constexpr in GCC +// UNSUPPORTED: gcc-12 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.const_char_array.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.const_char_array.pass.cpp index ef08fde78c82..24db819f230e 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.const_char_array.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.const_char_array.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp index 38e891a1f147..25e26f9af26d 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.floating_point.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.handle.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.handle.pass.cpp index 75b68dc4800d..4f3c94eaabfc 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.handle.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.handle.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.pointer.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.pointer.pass.cpp index 470f2c5af391..ef3a1fd50027 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.pointer.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.pointer.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // diff --git a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.string.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.string.pass.cpp index 41f99ea7014f..1c43224e7f5d 100644 --- a/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.string.pass.cpp +++ b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.string.pass.cpp @@ -7,8 +7,6 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 // diff --git a/libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp index f377096c94c4..aa8cc48712e0 100644 --- a/libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED:gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/format.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format.pass.cpp index 77e086fcb54d..82c170c12be5 100644 --- a/libcxx/test/std/utilities/format/format.functions/format.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp index 3f435cb95789..822f40989471 100644 --- a/libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format_to.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp index 3aaf287830ef..80f47419eb29 100644 --- a/libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format_to.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp index f3ae11b4a6ca..53e7d1ba9a04 100644 --- a/libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format_to_n.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp b/libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp index 24d2466f60d7..c74b37652866 100644 --- a/libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/format_to_n.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp index 094d1011face..f6602ea2301d 100644 --- a/libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/formatted_size.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp b/libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp index 250f24e657f0..f8c2c08d8064 100644 --- a/libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/formatted_size.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp b/libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp index 6a6846b6b355..630c4044f6f6 100644 --- a/libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/locale-specific_form.pass.cpp @@ -9,8 +9,8 @@ // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // REQUIRES: locale.en_US.UTF-8 diff --git a/libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp index 092773ea0c94..069a96b38927 100644 --- a/libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/vformat.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp b/libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp index 31e2fae61826..de0110be7909 100644 --- a/libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/vformat.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp b/libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp index fe41ad0001c5..c4a46807c5f0 100644 --- a/libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/vformat_to.locale.pass.cpp @@ -8,8 +8,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: no-localization // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp b/libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp index 2ebed6372375..c4fee6ba82a5 100644 --- a/libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp +++ b/libcxx/test/std/utilities/format/format.functions/vformat_to.pass.cpp @@ -7,8 +7,8 @@ // UNSUPPORTED: c++03, c++11, c++14, c++17 // UNSUPPORTED: libcpp-has-no-incomplete-format -// TODO FMT Evaluate gcc-11 status -// UNSUPPORTED: gcc-11 +// TODO FMT Evaluate gcc-12 status +// UNSUPPORTED: gcc-12 // TODO FMT Investigate AppleClang ICE // UNSUPPORTED: apple-clang-13 diff --git a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp index b5df01bbe65f..85ad5316e733 100644 --- a/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp +++ b/libcxx/test/std/utilities/smartptr/unique.ptr/unique.ptr.create/make_unique.sizezero.pass.cpp @@ -7,7 +7,6 @@ //===----------------------------------------------------------------------===// // This code triggers https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104568 -// UNSUPPORTED: gcc-11 // UNSUPPORTED: msvc // Test the fix for https://llvm.org/PR54100 diff --git a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp index 993a1ea4e900..c3e684be4472 100644 --- a/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp +++ b/libcxx/test/std/utilities/tuple/tuple.tuple/tuple.cnstr/deduct.pass.cpp @@ -8,11 +8,6 @@ // UNSUPPORTED: c++03, c++11, c++14 -// GCC's implementation of class template deduction is still immature and runs -// into issues with libc++. However GCC accepts this code when compiling -// against libstdc++. -// XFAIL: gcc-11 - // // Test that the constructors offered by std::tuple are formulated diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp index 3c0a7f1a63fa..0b0f8beaa2b2 100644 --- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp +++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/implicit_deduction_guides.pass.cpp @@ -8,11 +8,6 @@ // UNSUPPORTED: c++03, c++11, c++14 -// GCC's implementation of class template deduction is still immature and runs -// into issues with libc++. However GCC accepts this code when compiling -// against libstdc++. -// XFAIL: gcc - // // Test that the constructors offered by std::pair are formulated diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot index 23aaa1c7e6d7..81f7d6cafc74 100755 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -281,8 +281,8 @@ generic-clang-14) check-abi-list ;; generic-gcc) - export CC=gcc-11 - export CXX=g++-11 + export CC=gcc-12 + export CXX=g++-12 clean generate-cmake -DLIBCXX_ENABLE_WERROR=NO \ -DLIBCXXABI_ENABLE_WERROR=NO \ @@ -290,8 +290,8 @@ generic-gcc) check-runtimes ;; generic-gcc-cxx11) - export CC=gcc-11 - export CXX=g++-11 + export CC=gcc-12 + export CXX=g++-12 clean generate-cmake -C "${MONOREPO_ROOT}/libcxx/cmake/caches/Generic-cxx11.cmake" \ -DLIBCXX_ENABLE_WERROR=NO \ diff --git a/libcxx/utils/libcxx/test/params.py b/libcxx/utils/libcxx/test/params.py index 2f537f1f2d94..82fe93fc48fe 100644 --- a/libcxx/utils/libcxx/test/params.py +++ b/libcxx/utils/libcxx/test/params.py @@ -33,6 +33,11 @@ _warningFlags = [ '-Wno-literal-suffix', # GCC '-Wno-user-defined-literals', # Clang + # GCC warns about this when TEST_IS_CONSTANT_EVALUATED is used on a non-constexpr + # function. (This mostely happens in C++11 mode.) + # TODO(mordante) investigate a solution for this issue. + '-Wno-tautological-compare', + # These warnings should be enabled in order to support the MSVC # team using the test suite; They enable the warnings below and # expect the test suite to be clean. diff --git a/libcxxabi/test/catch_member_function_pointer_02.pass.cpp b/libcxxabi/test/catch_member_function_pointer_02.pass.cpp index ee81b0c3d367..e228c50a2739 100644 --- a/libcxxabi/test/catch_member_function_pointer_02.pass.cpp +++ b/libcxxabi/test/catch_member_function_pointer_02.pass.cpp @@ -15,7 +15,7 @@ // GCC supports noexcept function types but this test still fails. // This is likely a bug in their implementation. Investigation needed. -// XFAIL: gcc-11 +// XFAIL: gcc-11, gcc-12 #include