[libcxx-commits] [libcxx] [libc++][test] Change forbidden `extents<char>` to `extents<signed char>` (PR #73535)
Stephan T. Lavavej via libcxx-commits
libcxx-commits at lists.llvm.org
Mon Nov 27 18:21:38 PST 2023
https://github.com/StephanTLavavej updated https://github.com/llvm/llvm-project/pull/73535
>From 356e20a2a1d27982b36b4948b6af3cba5170805f Mon Sep 17 00:00:00 2001
From: "Stephan T. Lavavej" <stl at nuwen.net>
Date: Fri, 24 Nov 2023 15:30:56 -0800
Subject: [PATCH 1/3] N4964 [mdspan.extents.overview]/1.1 "Mandates: IndexType
is a signed or unsigned integer type"
IntType now needs a conversion.
---
.../std/containers/views/mdspan/ConvertibleToIntegral.h | 1 +
.../containers/views/mdspan/extents/CtorTestCombinations.h | 4 ++--
.../std/containers/views/mdspan/extents/obs_static.pass.cpp | 2 +-
.../test/std/containers/views/mdspan/extents/types.pass.cpp | 2 +-
.../containers/views/mdspan/layout_left/extents.verify.cpp | 2 +-
.../views/mdspan/layout_left/index_operator.pass.cpp | 2 +-
.../containers/views/mdspan/layout_left/properties.pass.cpp | 2 +-
.../views/mdspan/layout_left/static_requirements.pass.cpp | 2 +-
.../containers/views/mdspan/layout_right/extents.verify.cpp | 2 +-
.../views/mdspan/layout_right/index_operator.pass.cpp | 2 +-
.../views/mdspan/layout_right/properties.pass.cpp | 2 +-
.../views/mdspan/layout_right/static_requirements.pass.cpp | 2 +-
.../views/mdspan/layout_stride/extents.verify.cpp | 2 +-
.../views/mdspan/layout_stride/index_operator.pass.cpp | 2 +-
.../views/mdspan/layout_stride/properties.pass.cpp | 4 ++--
.../views/mdspan/layout_stride/static_requirements.pass.cpp | 2 +-
.../test/std/containers/views/mdspan/mdspan/assign.pass.cpp | 4 ++--
.../std/containers/views/mdspan/mdspan/ctor.copy.pass.cpp | 4 ++--
.../containers/views/mdspan/mdspan/ctor.default.pass.cpp | 6 +++---
.../containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp | 4 ++--
.../containers/views/mdspan/mdspan/ctor.dh_extents.pass.cpp | 4 ++--
.../views/mdspan/mdspan/ctor.dh_integers.pass.cpp | 6 +++---
.../std/containers/views/mdspan/mdspan/ctor.dh_map.pass.cpp | 4 ++--
.../containers/views/mdspan/mdspan/ctor.dh_map_acc.pass.cpp | 4 ++--
.../containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp | 4 ++--
.../std/containers/views/mdspan/mdspan/ctor.move.pass.cpp | 4 ++--
.../std/containers/views/mdspan/mdspan/deduction.pass.cpp | 4 ++--
.../containers/views/mdspan/mdspan/index_operator.pass.cpp | 2 +-
.../test/std/containers/views/mdspan/mdspan/move.pass.cpp | 4 ++--
.../std/containers/views/mdspan/mdspan/properties.pass.cpp | 4 ++--
.../test/std/containers/views/mdspan/mdspan/types.pass.cpp | 6 +++---
31 files changed, 50 insertions(+), 49 deletions(-)
diff --git a/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h b/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
index 2f081c38ef65fd5..a9bf3f1513c385d 100644
--- a/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
+++ b/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
@@ -18,6 +18,7 @@ struct IntType {
constexpr operator int() const noexcept { return val; }
constexpr operator unsigned char() const { return val; }
constexpr operator char() const noexcept { return val; }
+ constexpr operator signed char() const noexcept { return val; }
};
// only non-const convertible
diff --git a/libcxx/test/std/containers/views/mdspan/extents/CtorTestCombinations.h b/libcxx/test/std/containers/views/mdspan/extents/CtorTestCombinations.h
index 5ad841f16939a6b..bf08c580f3746ba 100644
--- a/libcxx/test/std/containers/views/mdspan/extents/CtorTestCombinations.h
+++ b/libcxx/test/std/containers/views/mdspan/extents/CtorTestCombinations.h
@@ -89,11 +89,11 @@ constexpr bool test_index_type_combo() {
test<int, int, Test>();
test<int, size_t, Test>();
test<unsigned, int, Test>();
- test<char, size_t, Test>();
+ test<signed char, size_t, Test>();
test<long long, unsigned, Test>();
test<size_t, int, Test>();
test<size_t, size_t, Test>();
test<int, IntType, Test>();
- test<char, IntType, Test>();
+ test<signed char, IntType, Test>();
return true;
}
diff --git a/libcxx/test/std/containers/views/mdspan/extents/obs_static.pass.cpp b/libcxx/test/std/containers/views/mdspan/extents/obs_static.pass.cpp
index 90b482b3bc065d7..0c8d3415a672605 100644
--- a/libcxx/test/std/containers/views/mdspan/extents/obs_static.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/extents/obs_static.pass.cpp
@@ -81,7 +81,7 @@ void test() {
int main(int, char**) {
test<int>();
test<unsigned>();
- test<char>();
+ test<signed char>();
test<long long>();
test<size_t>();
return 0;
diff --git a/libcxx/test/std/containers/views/mdspan/extents/types.pass.cpp b/libcxx/test/std/containers/views/mdspan/extents/types.pass.cpp
index 228194533399921..dbaff46e82b6bc6 100644
--- a/libcxx/test/std/containers/views/mdspan/extents/types.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/extents/types.pass.cpp
@@ -78,7 +78,7 @@ void test() {
int main(int, char**) {
test<int>();
test<unsigned>();
- test<char>();
+ test<signed char>();
test<long long>();
test<size_t>();
return 0;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_left/extents.verify.cpp b/libcxx/test/std/containers/views/mdspan/layout_left/extents.verify.cpp
index a1e308f00ae5667..b976ed7295db367 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_left/extents.verify.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_left/extents.verify.cpp
@@ -29,5 +29,5 @@ void not_extents() {
void representable() {
// expected-error-re@*:* {{static assertion failed {{.*}}layout_left::mapping product of static extents must be representable as index_type.}}
- [[maybe_unused]] std::layout_left::mapping<std::extents<char, 20, 20>> mapping;
+ [[maybe_unused]] std::layout_left::mapping<std::extents<signed char, 20, 20>> mapping;
}
diff --git a/libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp
index 5ca6f65e510d30d..1b6cb5ab3fb25cf 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_left/index_operator.pass.cpp
@@ -80,7 +80,7 @@ constexpr bool test() {
test_iteration<std::extents<unsigned, D>>(7);
test_iteration<std::extents<unsigned, 7>>();
test_iteration<std::extents<unsigned, 7, 8>>();
- test_iteration<std::extents<char, D, D, D, D>>(1, 1, 1, 1);
+ test_iteration<std::extents<signed char, D, D, D, D>>(1, 1, 1, 1);
// Check operator constraint for number of arguments
static_assert(check_operator_constraints(std::layout_left::mapping<std::extents<int, D>>(std::extents<int, D>(1)), 0));
diff --git a/libcxx/test/std/containers/views/mdspan/layout_left/properties.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_left/properties.pass.cpp
index 85a362fc41d2580..cbf1b5c2907663d 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_left/properties.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_left/properties.pass.cpp
@@ -53,7 +53,7 @@ constexpr void test_layout_mapping_left() {
constexpr bool test() {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_left<std::extents<int>>();
- test_layout_mapping_left<std::extents<char, 4, 5>>();
+ test_layout_mapping_left<std::extents<signed char, 4, 5>>();
test_layout_mapping_left<std::extents<unsigned, D, 4>>();
test_layout_mapping_left<std::extents<size_t, D, D, D, D>>();
return true;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_left/static_requirements.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_left/static_requirements.pass.cpp
index 366498803a2ded5..23a7c8a09005c13 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_left/static_requirements.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_left/static_requirements.pass.cpp
@@ -124,7 +124,7 @@ void test_layout_mapping_left() {
int main(int, char**) {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_left<std::extents<int>>();
- test_layout_mapping_left<std::extents<char, 4, 5>>();
+ test_layout_mapping_left<std::extents<signed char, 4, 5>>();
test_layout_mapping_left<std::extents<unsigned, D, 4>>();
test_layout_mapping_left<std::extents<size_t, D, D, D, D>>();
return 0;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right/extents.verify.cpp b/libcxx/test/std/containers/views/mdspan/layout_right/extents.verify.cpp
index aad91ae6d46f129..c0d1876dca441da 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right/extents.verify.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right/extents.verify.cpp
@@ -29,5 +29,5 @@ void not_extents() {
void representable() {
// expected-error-re@*:* {{static assertion failed {{.*}}layout_right::mapping product of static extents must be representable as index_type.}}
- [[maybe_unused]] std::layout_right::mapping<std::extents<char, 20, 20>> mapping;
+ [[maybe_unused]] std::layout_right::mapping<std::extents<signed char, 20, 20>> mapping;
}
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp
index 19072658889eeb2..879e6713376d6c7 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right/index_operator.pass.cpp
@@ -80,7 +80,7 @@ constexpr bool test() {
test_iteration<std::extents<unsigned, D>>(7);
test_iteration<std::extents<unsigned, 7>>();
test_iteration<std::extents<unsigned, 7, 8>>();
- test_iteration<std::extents<char, D, D, D, D>>(1, 1, 1, 1);
+ test_iteration<std::extents<signed char, D, D, D, D>>(1, 1, 1, 1);
// Check operator constraint for number of arguments
static_assert(check_operator_constraints(std::layout_right::mapping<std::extents<int, D>>(std::extents<int, D>(1)), 0));
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right/properties.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right/properties.pass.cpp
index 26eb2e0fe656192..e10e073c8fb133f 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right/properties.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right/properties.pass.cpp
@@ -53,7 +53,7 @@ constexpr void test_layout_mapping_right() {
constexpr bool test() {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_right<std::extents<int>>();
- test_layout_mapping_right<std::extents<char, 4, 5>>();
+ test_layout_mapping_right<std::extents<signed char, 4, 5>>();
test_layout_mapping_right<std::extents<unsigned, D, 4>>();
test_layout_mapping_right<std::extents<size_t, D, D, D, D>>();
return true;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_right/static_requirements.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_right/static_requirements.pass.cpp
index d460f1a5dbc468a..c4e3d89cb94f46d 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_right/static_requirements.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_right/static_requirements.pass.cpp
@@ -124,7 +124,7 @@ void test_layout_mapping_right() {
int main(int, char**) {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_right<std::extents<int>>();
- test_layout_mapping_right<std::extents<char, 4, 5>>();
+ test_layout_mapping_right<std::extents<signed char, 4, 5>>();
test_layout_mapping_right<std::extents<unsigned, D, 4>>();
test_layout_mapping_right<std::extents<size_t, D, D, D, D>>();
return 0;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_stride/extents.verify.cpp b/libcxx/test/std/containers/views/mdspan/layout_stride/extents.verify.cpp
index 46f2b774bcbd9fd..0c2ec888ab35bc9 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_stride/extents.verify.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_stride/extents.verify.cpp
@@ -29,5 +29,5 @@ void not_extents() {
void representable() {
// expected-error-re@*:* {{static assertion failed {{.*}}layout_stride::mapping product of static extents must be representable as index_type.}}
- [[maybe_unused]] std::layout_stride::mapping<std::extents<char, 20, 20>> mapping;
+ [[maybe_unused]] std::layout_stride::mapping<std::extents<signed char, 20, 20>> mapping;
}
diff --git a/libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp
index dbd56a54758c97c..01278e9076714a9 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_stride/index_operator.pass.cpp
@@ -79,7 +79,7 @@ constexpr bool test() {
test_iteration<std::extents<unsigned, D>>(std::array<int, 1>{3}, 7);
test_iteration<std::extents<unsigned, 7>>(std::array<int, 1>{4});
test_iteration<std::extents<unsigned, 7, 8>>(std::array<int, 2>{25, 3});
- test_iteration<std::extents<char, D, D, D, D>>(std::array<int, 4>{1, 1, 1, 1}, 1, 1, 1, 1);
+ test_iteration<std::extents<signed char, D, D, D, D>>(std::array<int, 4>{1, 1, 1, 1}, 1, 1, 1, 1);
// Check operator constraint for number of arguments
static_assert(check_operator_constraints(
diff --git a/libcxx/test/std/containers/views/mdspan/layout_stride/properties.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_stride/properties.pass.cpp
index d3d0aa6b3c3a538..8dba35cd9d33666 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_stride/properties.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_stride/properties.pass.cpp
@@ -102,8 +102,8 @@ test_layout_mapping_stride(E ext, std::array<typename E::index_type, E::rank()>
constexpr bool test() {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_stride(std::extents<int>(), std::array<int, 0>{}, true);
- test_layout_mapping_stride(std::extents<char, 4, 5>(), std::array<char, 2>{1, 4}, true);
- test_layout_mapping_stride(std::extents<char, 4, 5>(), std::array<char, 2>{1, 5}, false);
+ test_layout_mapping_stride(std::extents<signed char, 4, 5>(), std::array<signed char, 2>{1, 4}, true);
+ test_layout_mapping_stride(std::extents<signed char, 4, 5>(), std::array<signed char, 2>{1, 5}, false);
test_layout_mapping_stride(std::extents<unsigned, D, 4>(7), std::array<unsigned, 2>{20, 2}, false);
test_layout_mapping_stride(std::extents<size_t, D, D, D, D>(3, 3, 3, 3), std::array<size_t, 4>{3, 1, 9, 27}, true);
return true;
diff --git a/libcxx/test/std/containers/views/mdspan/layout_stride/static_requirements.pass.cpp b/libcxx/test/std/containers/views/mdspan/layout_stride/static_requirements.pass.cpp
index b56d0087260d1fc..8c5bf16b37c1e1f 100644
--- a/libcxx/test/std/containers/views/mdspan/layout_stride/static_requirements.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/layout_stride/static_requirements.pass.cpp
@@ -124,7 +124,7 @@ void test_layout_mapping_stride() {
int main(int, char**) {
constexpr size_t D = std::dynamic_extent;
test_layout_mapping_stride<std::extents<int>>();
- test_layout_mapping_stride<std::extents<char, 4, 5>>();
+ test_layout_mapping_stride<std::extents<signed char, 4, 5>>();
test_layout_mapping_stride<std::extents<unsigned, D, 4>>();
test_layout_mapping_stride<std::extents<size_t, D, D, D, D>>();
return 0;
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/assign.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/assign.pass.cpp
index 8741c79315f1e87..b282277d0dc0699 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/assign.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/assign.pass.cpp
@@ -57,10 +57,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.copy.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.copy.pass.cpp
index 7fb85ed845d6cbc..75f2fc3dd603a2f 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.copy.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.copy.pass.cpp
@@ -47,10 +47,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
index 8ad12944df84d4b..2e2a243355e40a1 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
@@ -59,10 +59,10 @@ template <bool hc, bool mc, bool ac, class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types<hc, mc, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types<hc, mc, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
@@ -75,7 +75,7 @@ constexpr void mixin_layout(const H& handle, const A& acc) {
// Use weird layout, make sure it has the properties we want to test
constexpr size_t D = std::dynamic_extent;
static_assert(
- !std::is_default_constructible_v< typename layout_wrapping_integral<4>::template mapping<std::extents<char, D>>>);
+ !std::is_default_constructible_v< typename layout_wrapping_integral<4>::template mapping<std::extents<signed char, D>>>);
mixin_extents<hc, false, ac>(handle, layout_wrapping_integral<4>(), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp
index 3c8797c023e1b57..2e5c842b50d4515 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_array.pass.cpp
@@ -105,10 +105,10 @@ template <bool mec, bool ac, class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_ctor<mec, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_extents.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_extents.pass.cpp
index 37ee8bdc2e1af4e..007ab9cdc636d56 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_extents.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_extents.pass.cpp
@@ -68,10 +68,10 @@ template <bool mec, bool ac, class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types<mec, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_integers.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_integers.pass.cpp
index f4a3e8adc40d8ea..985a8911e15b6e3 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_integers.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_integers.pass.cpp
@@ -84,17 +84,17 @@ constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
// construct from just dynamic extents
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc, 7);
+ test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc, 7);
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc, 2, 3);
- test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc, 0, 3);
+ test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc, 0, 3);
test_mdspan_types<mec, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc, 1, 2, 3, 2);
// construct from all extents
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc, 7);
test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc, 2, 4, 3);
- test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc, 0, 7, 3);
+ test_mdspan_types<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc, 0, 7, 3);
test_mdspan_types<mec, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc, 1, 7, 2, 4, 3, 2);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map.pass.cpp
index 995bc5d6d118198..4c636255c1c7855 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map.pass.cpp
@@ -65,10 +65,10 @@ template <bool ac, class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types<ac>(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map_acc.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map_acc.pass.cpp
index c2d76a47b2ee1aa..76ca7810963dfa9 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map_acc.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_map_acc.pass.cpp
@@ -57,10 +57,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp
index 7084e626171d43a..ad4da40630c9782 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.dh_span.pass.cpp
@@ -105,10 +105,10 @@ template <bool mec, bool ac, class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_ctor<mec, ac>(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_ctor<mec, ac>(
handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.move.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.move.pass.cpp
index 10bd5114bd4d89d..a65d0f44841780d 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.move.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.move.pass.cpp
@@ -46,10 +46,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
index d83299c2c53c993..557829dcbad9be7 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/deduction.pass.cpp
@@ -80,10 +80,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
index 5af2b3a45874b5c..2b843d6e4eb8ee6 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/index_operator.pass.cpp
@@ -120,7 +120,7 @@ constexpr void test_layout() {
test_iteration(construct_mapping(Layout(), std::extents<unsigned, D>(7)));
test_iteration(construct_mapping(Layout(), std::extents<unsigned, 7>()));
test_iteration(construct_mapping(Layout(), std::extents<unsigned, 7, 8>()));
- test_iteration(construct_mapping(Layout(), std::extents<char, D, D, D, D>(1, 1, 1, 1)));
+ test_iteration(construct_mapping(Layout(), std::extents<signed char, D, D, D, D>(1, 1, 1, 1)));
// TODO enable for GCC 13, when the CI pipeline is switched, doesn't work with GCC 12
#if defined(__clang_major__) && __clang_major__ >= 17
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/move.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/move.pass.cpp
index 4729bd171da86a0..1c5f404d49fb2f8 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/move.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/move.pass.cpp
@@ -49,10 +49,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/properties.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/properties.pass.cpp
index 8f2bc42c8c01ec1..35534fa87954814 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/properties.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/properties.pass.cpp
@@ -178,10 +178,10 @@ template <class H, class L, class A>
constexpr void mixin_extents(const H& handle, const L& layout, const A& acc) {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types(handle, construct_mapping(layout, std::extents<int>()), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D>(7)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D>(7)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<unsigned, 7>()), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<size_t, D, 4, D>(2, 3)), acc);
- test_mdspan_types(handle, construct_mapping(layout, std::extents<char, D, 7, D>(0, 3)), acc);
+ test_mdspan_types(handle, construct_mapping(layout, std::extents<signed char, D, 7, D>(0, 3)), acc);
test_mdspan_types(handle, construct_mapping(layout, std::extents<int64_t, D, 7, D, 4, D, D>(1, 2, 3, 2)), acc);
}
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/types.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/types.pass.cpp
index 2dea5a82b65169a..7e0235105b0b159 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/types.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/types.pass.cpp
@@ -136,9 +136,9 @@ template <class T, class L, class A>
void mixin_extents() {
constexpr size_t D = std::dynamic_extent;
test_mdspan_types<T, std::extents<int>, L, A>();
- test_mdspan_types<T, std::extents<char, D>, L, A>();
- test_mdspan_types<T, std::dextents<char, 7>, L, A>();
- test_mdspan_types<T, std::dextents<char, 9>, L, A>();
+ test_mdspan_types<T, std::extents<signed char, D>, L, A>();
+ test_mdspan_types<T, std::dextents<signed char, 7>, L, A>();
+ test_mdspan_types<T, std::dextents<signed char, 9>, L, A>();
test_mdspan_types<T, std::extents<unsigned, 7>, L, A>();
test_mdspan_types<T, std::extents<unsigned, D, D, D>, L, A>();
test_mdspan_types<T, std::extents<size_t, D, 7, D>, L, A>();
>From 8fa090b82c41d651554ba1cad8ffb05495d08226 Mon Sep 17 00:00:00 2001
From: "Stephan T. Lavavej" <stl at nuwen.net>
Date: Mon, 27 Nov 2023 08:24:44 -0800
Subject: [PATCH 2/3] Apply clang-format from CI.
---
.../std/containers/views/mdspan/mdspan/ctor.default.pass.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
index 2e2a243355e40a1..5c0ae126dff2465 100644
--- a/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
+++ b/libcxx/test/std/containers/views/mdspan/mdspan/ctor.default.pass.cpp
@@ -74,8 +74,8 @@ constexpr void mixin_layout(const H& handle, const A& acc) {
// Use weird layout, make sure it has the properties we want to test
constexpr size_t D = std::dynamic_extent;
- static_assert(
- !std::is_default_constructible_v< typename layout_wrapping_integral<4>::template mapping<std::extents<signed char, D>>>);
+ static_assert(!std::is_default_constructible_v<
+ typename layout_wrapping_integral<4>::template mapping<std::extents<signed char, D>>>);
mixin_extents<hc, false, ac>(handle, layout_wrapping_integral<4>(), acc);
}
>From 6632abd7f51bbfe6dc1dd8dd3953e118569eb48f Mon Sep 17 00:00:00 2001
From: "Stephan T. Lavavej" <stl at nuwen.net>
Date: Mon, 27 Nov 2023 17:40:23 -0800
Subject: [PATCH 3/3] Remove `IntType::operator char()`.
---
libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h b/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
index a9bf3f1513c385d..470f5d8e724648c 100644
--- a/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
+++ b/libcxx/test/std/containers/views/mdspan/ConvertibleToIntegral.h
@@ -17,7 +17,6 @@ struct IntType {
constexpr bool operator==(const IntType& rhs) const { return val == rhs.val; }
constexpr operator int() const noexcept { return val; }
constexpr operator unsigned char() const { return val; }
- constexpr operator char() const noexcept { return val; }
constexpr operator signed char() const noexcept { return val; }
};
More information about the libcxx-commits
mailing list