Skip to content

Commit 580d26a

Browse files
authored
[libc++] Remove the CI job testing Clang 15 (llvm#66406)
Since LLVM 17 has been branched and is on the verge of being released, we can drop the CI job that tests against Clang 15. I think the number of cherry-picks to `release/17.x` will be a lot smaller now, so keeping a Clang 15 job around for that purpose seems unnecessary. As a fly-by, this patch also removes some Clang 15 workarounds and test suite annotations as we usually do. It also removes some slightly older gcc test suite annotations that were missed.
1 parent ea7157f commit 580d26a

File tree

15 files changed

+12
-61
lines changed

15 files changed

+12
-61
lines changed

libcxx/docs/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ velocity, libc++ drops support for older compilers as newer ones are released.
116116
============ =============== ========================== =====================
117117
Compiler Versions Restrictions Support policy
118118
============ =============== ========================== =====================
119-
Clang 15, 16, 17-git latest two stable releases per `LLVM's release page <https://releases.llvm.org>`_ and the development version
119+
Clang 16, 17, 18-git latest two stable releases per `LLVM's release page <https://releases.llvm.org>`_ and the development version
120120
AppleClang 15 latest stable release per `Xcode's release page <https://developer.apple.com/documentation/xcode-release-notes>`_
121121
Open XL 17.1 (AIX) latest stable release per `Open XL's documentation page <https://www.ibm.com/docs/en/openxl-c-and-cpp-aix>`_
122122
GCC 12 In C++11 or later only latest stable release per `GCC's release page <https://gcc.gnu.org/releases.html>`_

libcxx/include/__ranges/take_while_view.h

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,18 +41,6 @@ _LIBCPP_BEGIN_NAMESPACE_STD
4141

4242
namespace ranges {
4343

44-
// The spec uses the unnamed requirement inside the `begin` and `end` member functions:
45-
// constexpr auto begin() const
46-
// requires range<const V> && indirect_unary_predicate<const Pred, iterator_t<const V>>
47-
// However, due to a clang-14 and clang-15 bug, the above produces a hard error when `const V` is not a range.
48-
// The workaround is to create a named concept and use the concept instead.
49-
// As of take_while_view is implemented, the clang-trunk has already fixed the bug.
50-
// It is OK to remove the workaround once our CI no longer uses clang-14, clang-15 based compilers,
51-
// because we don't actually expect a lot of vendors to ship a new libc++ with an old clang.
52-
template <class _View, class _Pred>
53-
concept __take_while_const_is_range =
54-
range<const _View> && indirect_unary_predicate<const _Pred, iterator_t<const _View>>;
55-
5644
template <view _View, class _Pred>
5745
requires input_range<_View> && is_object_v<_Pred> && indirect_unary_predicate<const _Pred, iterator_t<_View>>
5846
class take_while_view : public view_interface<take_while_view<_View, _Pred>> {
@@ -87,7 +75,7 @@ class take_while_view : public view_interface<take_while_view<_View, _Pred>> {
8775
}
8876

8977
_LIBCPP_HIDE_FROM_ABI constexpr auto begin() const
90-
requires __take_while_const_is_range<_View, _Pred>
78+
requires range<const _View> && indirect_unary_predicate<const _Pred, iterator_t<const _View>>
9179
{
9280
return ranges::begin(__base_);
9381
}
@@ -99,7 +87,7 @@ class take_while_view : public view_interface<take_while_view<_View, _Pred>> {
9987
}
10088

10189
_LIBCPP_HIDE_FROM_ABI constexpr auto end() const
102-
requires __take_while_const_is_range<_View, _Pred>
90+
requires range<const _View> && indirect_unary_predicate<const _Pred, iterator_t<const _View>>
10391
{
10492
return __sentinel</*_Const=*/true>(ranges::end(__base_), std::addressof(*__pred_));
10593
}

libcxx/include/__ranges/to.h

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,13 @@ _LIBCPP_BEGIN_NAMESPACE_STD
4444

4545
namespace ranges {
4646

47-
// TODO(clang-15): in the Standard, it's a `constexpr bool` variable, not a concept, but constexpr variables don't
48-
// short-circuit properly on Clang 15 (fixed in later versions), so use a concept as a workaround.
4947
template <class _Container>
50-
concept __reservable_container = sized_range<_Container> && requires(_Container& __c, range_size_t<_Container> __n) {
51-
__c.reserve(__n);
52-
{ __c.capacity() } -> same_as<decltype(__n)>;
53-
{ __c.max_size() } -> same_as<decltype(__n)>;
54-
};
48+
constexpr bool __reservable_container =
49+
sized_range<_Container> && requires(_Container& __c, range_size_t<_Container> __n) {
50+
__c.reserve(__n);
51+
{ __c.capacity() } -> same_as<decltype(__n)>;
52+
{ __c.max_size() } -> same_as<decltype(__n)>;
53+
};
5554

5655
template <class _Container, class _Ref>
5756
constexpr bool __container_insertable = requires(_Container& __c, _Ref&& __ref) {

libcxx/test/libcxx/experimental/fexperimental-library.compile.pass.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,6 @@
1212
// GCC does not support the -fexperimental-library flag
1313
// UNSUPPORTED: gcc
1414

15-
// Clang on AIX currently pretends that it is Clang 15, even though it is not (as of writing
16-
// this, LLVM 15 hasn't even been branched yet).
17-
// UNSUPPORTED: clang-15 && buildhost=aix
18-
1915
// ADDITIONAL_COMPILE_FLAGS: -fexperimental-library
2016

2117
#include <version>

libcxx/test/libcxx/gdb/gdb_pretty_printer_test.sh.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
// UNSUPPORTED: c++03
1313

1414
// TODO: Investigate these failures which break the CI.
15-
// UNSUPPORTED: clang-15, clang-16, clang-17, clang-18
15+
// UNSUPPORTED: clang-16, clang-17, clang-18
1616

1717
// TODO: Investigate this failure on GCC 13 (in Ubuntu Jammy)
1818
// UNSUPPORTED: gcc-13

libcxx/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
// XFAIL: sanitizer-new-delete && !hwasan
2121

22-
// It fails with clang-14 or clang-16, but passes with clang-15.
22+
// TODO: Investigate this failure
2323
// UNSUPPORTED: ubsan
2424

2525
// GCC doesn't support the aligned-allocation flags.

libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
#include "../ConvertibleToIntegral.h"
3939
#include "CustomTestLayouts.h"
4040

41-
// Clang 15 and 16 do not support argument packs as input to operator []
41+
// Clang 16 does not support argument packs as input to operator []
4242
#if defined(__clang_major__) && __clang_major__ < 17
4343
template <class MDS>
4444
constexpr auto& access(MDS mds) {

libcxx/test/std/language.support/support.srcloc/general.pass.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
//===----------------------------------------------------------------------===//
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17
10-
// UNSUPPORTED: clang-15
1110

1211
#include <source_location>
1312

libcxx/test/std/ranges/range.adaptors/range.filter/iterator/arrow.pass.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
// This test is hitting Clang bugs with LSV in older versions of Clang.
10-
// UNSUPPORTED: clang-modules-build && clang-15
11-
129
// UNSUPPORTED: c++03, c++11, c++14, c++17
1310

1411
// constexpr iterator_t<V> operator->() const

libcxx/test/std/thread/futures/futures.task/futures.task.members/ctad.static.compile.pass.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88

99
// UNSUPPORTED: no-threads
1010
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
11-
// XFAIL: clang-15
1211

1312
// checks that CTAD for std::packaged_task works properly with static operator() overloads
1413

libcxx/test/std/utilities/expected/expected.expected/swap/free.swap.pass.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
//===----------------------------------------------------------------------===//
77

88
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
9-
// Older Clangs do not support the C++20 feature to constrain destructors
10-
// XFAIL: clang-15
119

1210
// friend constexpr void swap(expected& x, expected& y) noexcept(noexcept(x.swap(y)));
1311

libcxx/test/std/utilities/expected/expected.void/swap/free.swap.pass.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,6 @@
66
//===----------------------------------------------------------------------===//
77

88
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
9-
// Older Clangs do not support the C++20 feature to constrain destructors
10-
// XFAIL: clang-15
119

1210
// friend constexpr void swap(expected& x, expected& y) noexcept(noexcept(swap(x,y)));
1311

libcxx/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/ctad.static.compile.pass.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
//===----------------------------------------------------------------------===//
88

99
// UNSUPPORTED: c++03, c++11, c++14, c++17, c++20
10-
// XFAIL: clang-15
1110

1211
// checks that CTAD for std::function works properly with static operator() overloads
1312

libcxx/test/std/utilities/tuple/tuple.tuple/tuple.assign/convert_copy.pass.cpp

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@
66
//
77
//===----------------------------------------------------------------------===//
88

9-
// Triggers a Clang assertion: llvm.org/PR45879
10-
// UNSUPPORTED: clang-15
11-
129
// <tuple>
1310

1411
// template <class... Types> class tuple;

libcxx/utils/ci/buildkite-pipeline.yml

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -271,25 +271,6 @@ steps:
271271
limit: 2
272272
timeout_in_minutes: 120
273273

274-
- label: "Clang 15"
275-
command: "libcxx/utils/ci/run-buildbot generic-cxx23"
276-
artifact_paths:
277-
- "**/test-results.xml"
278-
- "**/*.abilist"
279-
env:
280-
CC: "clang-15"
281-
CXX: "clang++-15"
282-
ENABLE_CLANG_TIDY: "On"
283-
ENABLE_STD_MODULES: "Off"
284-
agents:
285-
queue: "libcxx-builders"
286-
os: "linux"
287-
retry:
288-
automatic:
289-
- exit_status: -1 # Agent was lost
290-
limit: 2
291-
timeout_in_minutes: 120
292-
293274
- label: "Clang 16"
294275
command: "libcxx/utils/ci/run-buildbot generic-cxx23"
295276
artifact_paths:

0 commit comments

Comments
 (0)