Skip to content

Commit e39d56c

Browse files
committed
[libc++] Remove the CI job testing Clang 15
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 5f2da9c commit e39d56c

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
@@ -289,25 +289,6 @@ steps:
289289
limit: 2
290290
timeout_in_minutes: 120
291291

292-
- label: "Clang 15"
293-
command: "libcxx/utils/ci/run-buildbot generic-cxx23"
294-
artifact_paths:
295-
- "**/test-results.xml"
296-
- "**/*.abilist"
297-
env:
298-
CC: "clang-15"
299-
CXX: "clang++-15"
300-
ENABLE_CLANG_TIDY: "On"
301-
ENABLE_STD_MODULES: "Off"
302-
agents:
303-
queue: "libcxx-builders"
304-
os: "linux"
305-
retry:
306-
automatic:
307-
- exit_status: -1 # Agent was lost
308-
limit: 2
309-
timeout_in_minutes: 120
310-
311292
- label: "Clang 16"
312293
command: "libcxx/utils/ci/run-buildbot generic-cxx23"
313294
artifact_paths:

0 commit comments

Comments
 (0)