diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -107,7 +107,7 @@ 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 --- 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 --- 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.handle.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.handle.pass.cpp --- 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.bool.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.bool.pass.cpp --- 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 --- 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 --- 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 // UNSUPPORTED: apple-clang-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 --- 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 --- 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.pointer.pass.cpp b/libcxx/test/std/utilities/format/format.formatter/format.formatter.spec/formatter.pointer.pass.cpp --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- 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 --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -281,8 +281,8 @@ 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 @@ 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 --- a/libcxx/utils/libcxx/test/params.py +++ b/libcxx/utils/libcxx/test/params.py @@ -28,6 +28,10 @@ # functions, but we know better what we're doing/testing in the test suite. '-Wno-sized-deallocation', + # GCC warns about this when TEST_IS_CONSTANT_EVALUATED is used on a non-constexpr + # function. (This mostely happens in C++11 mode.) + '-Wno-tautological-compare', + # Turn off warnings about user-defined literals with reserved suffixes. Those are # just noise since we are testing the Standard Library itself. '-Wno-literal-suffix', # GCC diff --git a/libcxxabi/test/catch_member_function_pointer_02.pass.cpp b/libcxxabi/test/catch_member_function_pointer_02.pass.cpp --- 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