From 88b73a980ff28fc7123df1e857b5c4dda4a62a5a Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Mon, 12 Jul 2021 12:31:51 -0400 Subject: [PATCH] [libc++] Remove random [[nodiscard]] in the test suite --- ...uivalence_relation.subsumption.compile.pass.cpp | 12 ++--- .../equivalence_relation.subsumption.pass.cpp | 10 ++--- .../concept.invocable/invocable.compile.pass.cpp | 4 +- .../concept.predicate/predicate.compile.pass.cpp | 4 +- .../concept.predicate/predicate.pass.cpp | 4 +- .../predicate.subsumption.compile.pass.cpp | 4 +- .../predicate.subsumption.pass.cpp | 4 +- .../regular_invocable.compile.pass.cpp | 4 +- .../relation.subsumption.compile.pass.cpp | 8 ++-- .../concept.relation/relation.subsumption.pass.cpp | 4 +- .../strict_weak_order.subsumption.compile.pass.cpp | 12 ++--- .../strict_weak_order.subsumption.pass.cpp | 4 +- .../swappable_with.compile.pass.cpp | 2 +- .../concepts.lang/concepts.arithmetic/arithmetic.h | 6 +-- .../concepts.object/regular.compile.pass.cpp | 2 +- .../readable.traits/iter_value_t.pass.cpp | 6 +-- .../subsumption.compile.pass.cpp | 4 +- .../subsumption.compile.pass.cpp | 4 +- .../subsumption.compile.pass.cpp | 4 +- .../subsumption.compile.pass.cpp | 4 +- .../indirectly_readable.compile.pass.cpp | 2 +- .../sentinel_for.subsumption.compile.pass.cpp | 4 +- .../indirectly_writable.compile.pass.cpp | 2 +- .../iterator.cust.move/iter_move.pass.cpp | 6 +-- .../iterator.cust/unqualified_lookup_wrapper.h | 6 +-- .../range.refinements/subsumption.compile.pass.cpp | 12 ++--- libcxx/test/support/compare_types.h | 52 +++++++++++----------- libcxx/test/support/test_iterators.h | 4 +- 28 files changed, 97 insertions(+), 97 deletions(-) diff --git a/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp index 7619c8c..1f0b739 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp @@ -27,13 +27,13 @@ struct R { // clang-format off template requires std::relation -[[nodiscard]] constexpr bool check_equivalence_relation_subsumes_relation() { +constexpr bool check_equivalence_relation_subsumes_relation() { return false; } template requires std::equivalence_relation && true -[[nodiscard]] constexpr bool check_equivalence_relation_subsumes_relation() { +constexpr bool check_equivalence_relation_subsumes_relation() { return true; } // clang-format on @@ -48,13 +48,13 @@ static_assert(check_equivalence_relation_subsumes_relation()); // clang-format off template requires std::relation && true -[[nodiscard]] constexpr bool check_relation_subsumes_equivalence_relation() { +constexpr bool check_relation_subsumes_equivalence_relation() { return true; } template requires std::equivalence_relation -[[nodiscard]] constexpr bool check_relation_subsumes_equivalence_relation() { +constexpr bool check_relation_subsumes_equivalence_relation() { return false; } // clang-format on @@ -69,13 +69,13 @@ static_assert(check_relation_subsumes_equivalence_relation()); // clang-format off template requires std::equivalence_relation && std::equivalence_relation -[[nodiscard]] constexpr bool check_equivalence_relation_subsumes_itself() { +constexpr bool check_equivalence_relation_subsumes_itself() { return false; } template requires std::equivalence_relation -[[nodiscard]] constexpr bool check_equivalence_relation_subsumes_itself() { +constexpr bool check_equivalence_relation_subsumes_itself() { return true; } // clang-format on diff --git a/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp index 0aad734..ffec212 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp @@ -17,15 +17,15 @@ // clang-format off template requires std::relation -[[nodiscard]] constexpr bool check_subsumption() { return false; } +constexpr bool check_subsumption() { return false; } template requires std::equivalence_relation && true -[[nodiscard]] constexpr bool check_subsumption() { return false; } +constexpr bool check_subsumption() { return false; } template requires std::equivalence_relation && true -[[nodiscard]] constexpr bool check_subsumption() { return true; } +constexpr bool check_subsumption() { return true; } // clang-format on static_assert(check_subsumption()); @@ -46,11 +46,11 @@ static_assert(check_subsumption()); // clang-format off template requires std::relation && true -[[nodiscard]] constexpr bool check_reverse_subsumption() { return true; } +constexpr bool check_reverse_subsumption() { return true; } template requires std::equivalence_relation -[[nodiscard]] constexpr bool check_no_subsumption() { return false; } +constexpr bool check_no_subsumption() { return false; } // clang-format on static_assert(check_reverse_subsumption()); diff --git a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp index ddded61..dfd21a4 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp @@ -19,7 +19,7 @@ #include template -[[nodiscard]] constexpr bool check_invocable() { +constexpr bool check_invocable() { constexpr bool result = std::invocable; static_assert(std::invocable == result); static_assert(std::invocable == result); @@ -239,7 +239,7 @@ static_assert(!std::invocable); namespace pointer_to_member_functions { // clang-format off template - [[nodiscard]] constexpr bool check_member_is_invocable() + constexpr bool check_member_is_invocable() { constexpr bool result = std::invocable; using uncv_t = std::remove_cvref_t; diff --git a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp index 5ad5985..f2e86e2 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp @@ -45,9 +45,9 @@ static_assert(std::predicate); static_assert(!std::predicate); static_assert(!std::predicate); -[[nodiscard]] constexpr bool check_lambda(auto) { return false; } +constexpr bool check_lambda(auto) { return false; } -[[nodiscard]] constexpr bool check_lambda(std::predicate auto) { return true; } +constexpr bool check_lambda(std::predicate auto) { return true; } static_assert(check_lambda([] { return std::true_type(); })); static_assert(check_lambda([]() -> int* { return nullptr; })); diff --git a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp index 111f89c..5c59415 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp @@ -45,9 +45,9 @@ static_assert(std::predicate); static_assert(!std::predicate); static_assert(!std::predicate); -[[nodiscard]] constexpr bool check_lambda(auto) { return false; } +constexpr bool check_lambda(auto) { return false; } -[[nodiscard]] constexpr bool check_lambda(std::predicate auto) { return true; } +constexpr bool check_lambda(std::predicate auto) { return true; } static_assert(check_lambda([] { return std::true_type(); })); static_assert(check_lambda([]() -> int* { return nullptr; })); diff --git a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp index 3ac6526..da133d5 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp @@ -14,14 +14,14 @@ #include -[[nodiscard]] constexpr bool check_subsumption(std::regular_invocable auto) { +constexpr bool check_subsumption(std::regular_invocable auto) { return false; } // clang-format off template requires std::predicate && true -[[nodiscard]] constexpr bool check_subsumption(F) +constexpr bool check_subsumption(F) { return true; } diff --git a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp index 86c79f0..ca451ec 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp @@ -14,14 +14,14 @@ #include -[[nodiscard]] constexpr bool check_subsumption(std::regular_invocable auto) { +constexpr bool check_subsumption(std::regular_invocable auto) { return false; } // clang-format off template requires std::predicate && true -[[nodiscard]] constexpr bool check_subsumption(F) +constexpr bool check_subsumption(F) { return true; } diff --git a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp index 7868def..35973a7 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp @@ -19,7 +19,7 @@ #include template -[[nodiscard]] constexpr bool check_invocable() { +constexpr bool check_invocable() { constexpr bool result = std::regular_invocable; static_assert(std::regular_invocable == result); static_assert(std::regular_invocable == result); @@ -265,7 +265,7 @@ static_assert(!std::regular_invocable namespace pointer_to_member_functions { // clang-format off template - [[nodiscard]] constexpr bool check_member_is_invocable() + constexpr bool check_member_is_invocable() { constexpr bool result = std::regular_invocable; using uncv_t = std::remove_cvref_t; diff --git a/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp index f7a45f2..4b64e26 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp @@ -28,13 +28,13 @@ struct R { template requires std::predicate && std::predicate && std::predicate && std::predicate -[[nodiscard]] constexpr bool check_relation_subsumes_predicate() { +constexpr bool check_relation_subsumes_predicate() { return false; } template requires std::relation && true -[[nodiscard]] constexpr bool check_relation_subsumes_predicate() { +constexpr bool check_relation_subsumes_predicate() { return true; } // clang-format on @@ -49,13 +49,13 @@ static_assert(check_relation_subsumes_predicate()); // clang-format off template requires std::relation && std::relation -[[nodiscard]] constexpr bool check_relation_subsumes_itself() { +constexpr bool check_relation_subsumes_itself() { return false; } template requires std::relation -[[nodiscard]] constexpr bool check_relation_subsumes_itself() { +constexpr bool check_relation_subsumes_itself() { return true; } // clang-format on diff --git a/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp index 8568bd5..3e2a205 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp @@ -18,11 +18,11 @@ template requires std::predicate && std::predicate && std::predicate && std::predicate -[[nodiscard]] constexpr bool check_subsumption() { return false; } +constexpr bool check_subsumption() { return false; } template requires std::relation && true -[[nodiscard]] constexpr bool check_subsumption() { return true; } +constexpr bool check_subsumption() { return true; } // clang-format on static_assert(check_subsumption()); diff --git a/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp index 34574f6..969f25f1 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp @@ -27,13 +27,13 @@ struct R { // clang-format off template requires std::relation -[[nodiscard]] constexpr bool check_strict_weak_order_subsumes_relation() { +constexpr bool check_strict_weak_order_subsumes_relation() { return false; } template requires std::strict_weak_order && true -[[nodiscard]] constexpr bool check_strict_weak_order_subsumes_relation() { +constexpr bool check_strict_weak_order_subsumes_relation() { return true; } // clang-format on @@ -48,13 +48,13 @@ static_assert(check_strict_weak_order_subsumes_relation()); // clang-format off template requires std::relation && true -[[nodiscard]] constexpr bool check_relation_subsumes_strict_weak_order() { +constexpr bool check_relation_subsumes_strict_weak_order() { return true; } template requires std::strict_weak_order -[[nodiscard]] constexpr bool check_relation_subsumes_strict_weak_order() { +constexpr bool check_relation_subsumes_strict_weak_order() { return false; } // clang-format on @@ -69,13 +69,13 @@ static_assert(check_relation_subsumes_strict_weak_order()); // clang-format off template requires std::strict_weak_order && std::strict_weak_order -[[nodiscard]] constexpr bool check_strict_weak_order_subsumes_itself() { +constexpr bool check_strict_weak_order_subsumes_itself() { return false; } template requires std::strict_weak_order -[[nodiscard]] constexpr bool check_strict_weak_order_subsumes_itself() { +constexpr bool check_strict_weak_order_subsumes_itself() { return true; } // clang-format on diff --git a/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp b/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp index 52a19f4..93b1de7 100644 --- a/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp +++ b/libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp @@ -17,11 +17,11 @@ // clang-format off template requires std::relation -[[nodiscard]] constexpr bool check_subsumption() { return false; } +constexpr bool check_subsumption() { return false; } template requires std::strict_weak_order && true -[[nodiscard]] constexpr bool check_subsumption() { return true; } +constexpr bool check_subsumption() { return true; } // clang-format on static_assert(check_subsumption()); diff --git a/libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp b/libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp index e0772b5..7110729 100644 --- a/libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp @@ -671,7 +671,7 @@ struct Proxy { constexpr Proxy proxy(A& a) { return Proxy{a}; } } // namespace N -[[nodiscard]] constexpr bool CheckRegression() { +constexpr bool CheckRegression() { int i = 1, j = 2; lv_swap(i, j); assert(i == 2 && j == 1); diff --git a/libcxx/test/std/concepts/concepts.lang/concepts.arithmetic/arithmetic.h b/libcxx/test/std/concepts/concepts.lang/concepts.arithmetic/arithmetic.h index bb70165..b2baabf 100644 --- a/libcxx/test/std/concepts/concepts.lang/concepts.arithmetic/arithmetic.h +++ b/libcxx/test/std/concepts/concepts.lang/concepts.arithmetic/arithmetic.h @@ -12,20 +12,20 @@ // This overload should never be called. It exists solely to force subsumption. template -[[nodiscard]] constexpr bool CheckSubsumption(I) { +constexpr bool CheckSubsumption(I) { return false; } // clang-format off template requires std::signed_integral && (!std::unsigned_integral) -[[nodiscard]] constexpr bool CheckSubsumption(I) { +constexpr bool CheckSubsumption(I) { return std::is_signed_v; } template requires std::unsigned_integral && (!std::signed_integral) -[[nodiscard]] constexpr bool CheckSubsumption(I) { +constexpr bool CheckSubsumption(I) { return std::is_unsigned_v; } // clang-format on diff --git a/libcxx/test/std/concepts/concepts.object/regular.compile.pass.cpp b/libcxx/test/std/concepts/concepts.object/regular.compile.pass.cpp index a70e265..e3d17f3 100644 --- a/libcxx/test/std/concepts/concepts.object/regular.compile.pass.cpp +++ b/libcxx/test/std/concepts/concepts.object/regular.compile.pass.cpp @@ -161,7 +161,7 @@ static_assert(!std::regular); static_assert(!std::regular); struct is_equality_comparable { - [[nodiscard]] bool operator==(is_equality_comparable const&) const = default; + bool operator==(is_equality_comparable const&) const = default; }; static_assert(std::regular); diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp index dc18146..0d45972 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp @@ -20,7 +20,7 @@ #include template -[[nodiscard]] constexpr bool check_iter_value_t() { +constexpr bool check_iter_value_t() { constexpr bool result = std::same_as, Expected>; static_assert(std::same_as, Expected> == result); static_assert(std::same_as, Expected> == result); @@ -50,13 +50,13 @@ static_assert(check_iter_value_t()); // clang-format off template requires requires { typename std::iter_value_t; } -[[nodiscard]] constexpr bool check_no_iter_value_t() { +constexpr bool check_no_iter_value_t() { return false; } // clang-format on template -[[nodiscard]] constexpr bool check_no_iter_value_t() { +constexpr bool check_no_iter_value_t() { return true; } diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp index f1b7f30..2fd10c5 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp @@ -18,12 +18,12 @@ // clang-format off template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return false; } template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return true; } // clang-format on diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp index 985a068..c428063 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp @@ -20,12 +20,12 @@ // clang-format off template requires std::regular -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return false; } template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return true; } // clang-format on diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp index 608a7d0..92aa5c8 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp @@ -20,12 +20,12 @@ // clang-format off template requires std::indirectly_readable -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return false; } template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return true; } // clang-format on diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp index c138fc5..2a21967 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp @@ -17,12 +17,12 @@ // clang-format off template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return false; } template -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return true; } // clang-format on diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp index 1734c26..50c18e4 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp @@ -20,7 +20,7 @@ #include "read_write.h" template -[[nodiscard]] constexpr bool check_indirectly_readable() { +constexpr bool check_indirectly_readable() { constexpr bool result = std::indirectly_readable; static_assert(std::indirectly_readable == result); static_assert(std::indirectly_readable == result); diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp index bb95595..32d7b56 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp @@ -20,12 +20,12 @@ // clang-format off template -[[nodiscard]] constexpr bool check_sentinel_subsumption() { +constexpr bool check_sentinel_subsumption() { return false; } template > -[[nodiscard]] constexpr bool check_subsumption() { +constexpr bool check_subsumption() { return true; } // clang-format on diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp index 8f46ae0..71b1bd2 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp @@ -22,7 +22,7 @@ #include "read_write.h" template -[[nodiscard]] constexpr bool check_indirectly_writable() { +constexpr bool check_indirectly_writable() { constexpr bool result = std::indirectly_writable; static_assert(std::indirectly_writable == result); return result; diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp index cf80bde..a4c2bfb 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp @@ -32,10 +32,10 @@ public: constexpr explicit iterator_wrapper(I i) noexcept : base_(std::move(i)) {} // `noexcept(false)` is used to check that this operator is called. - [[nodiscard]] constexpr decltype(auto) operator*() const& noexcept(false) { return *base_; } + constexpr decltype(auto) operator*() const& noexcept(false) { return *base_; } // `noexcept` is used to check that this operator is called. - [[nodiscard]] constexpr auto&& operator*() && noexcept { return std::move(*base_); } + constexpr auto&& operator*() && noexcept { return std::move(*base_); } constexpr iterator_wrapper& operator++() noexcept { ++base_; @@ -44,7 +44,7 @@ public: constexpr void operator++(int) noexcept { ++base_; } - [[nodiscard]] constexpr bool operator==(iterator_wrapper const& other) const noexcept { return base_ == other.base_; } + constexpr bool operator==(iterator_wrapper const& other) const noexcept { return base_ == other.base_; } private: I base_ = I{}; diff --git a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h index 51f35c3..7c3719a 100644 --- a/libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h +++ b/libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h @@ -20,7 +20,7 @@ public: constexpr explicit unqualified_lookup_wrapper(I i) noexcept : base_(std::move(i)) {} - [[nodiscard]] constexpr decltype(auto) operator*() const noexcept { return *base_; } + constexpr decltype(auto) operator*() const noexcept { return *base_; } constexpr unqualified_lookup_wrapper& operator++() noexcept { ++base_; @@ -29,13 +29,13 @@ public: constexpr void operator++(int) noexcept { ++base_; } - [[nodiscard]] constexpr bool operator==(unqualified_lookup_wrapper const& other) const noexcept { + constexpr bool operator==(unqualified_lookup_wrapper const& other) const noexcept { return base_ == other.base_; } // Delegates `std::ranges::iter_move` for the underlying iterator. `noexcept(false)` will be used // to ensure that the unqualified-lookup overload is chosen. - [[nodiscard]] friend constexpr decltype(auto) iter_move(unqualified_lookup_wrapper& i) noexcept(false) { + friend constexpr decltype(auto) iter_move(unqualified_lookup_wrapper& i) noexcept(false) { return std::ranges::iter_move(i.base_); } diff --git a/libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp b/libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp index 0d0b9de..d2f3f39 100644 --- a/libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp +++ b/libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp @@ -26,13 +26,13 @@ struct range { template requires std::input_iterator> -[[nodiscard]] constexpr bool check_input_range_subsumption() { +constexpr bool check_input_range_subsumption() { return false; } template requires true -[[nodiscard]] constexpr bool check_input_range_subsumption() { +constexpr bool check_input_range_subsumption() { return true; } @@ -40,13 +40,13 @@ static_assert(check_input_range_subsumption()); template requires std::forward_iterator> -[[nodiscard]] constexpr bool check_forward_range_subsumption() { +constexpr bool check_forward_range_subsumption() { return false; } template requires true -[[nodiscard]] constexpr bool check_forward_range_subsumption() { +constexpr bool check_forward_range_subsumption() { return true; } @@ -54,13 +54,13 @@ static_assert(check_forward_range_subsumption()); template requires std::bidirectional_iterator> -[[nodiscard]] constexpr bool check_bidirectional_range_subsumption() { +constexpr bool check_bidirectional_range_subsumption() { return false; } template requires true -[[nodiscard]] constexpr bool check_bidirectional_range_subsumption() { +constexpr bool check_bidirectional_range_subsumption() { return true; } diff --git a/libcxx/test/support/compare_types.h b/libcxx/test/support/compare_types.h index 1d448da..581adb4f8 100644 --- a/libcxx/test/support/compare_types.h +++ b/libcxx/test/support/compare_types.h @@ -261,62 +261,62 @@ struct totally_ordered_with_others { }; struct no_lt_not_totally_ordered_with { - [[nodiscard]] bool operator==(no_lt_not_totally_ordered_with const&) const = default; - [[nodiscard]] auto operator<=>(no_lt_not_totally_ordered_with const&) const = default; + bool operator==(no_lt_not_totally_ordered_with const&) const = default; + auto operator<=>(no_lt_not_totally_ordered_with const&) const = default; operator totally_ordered_with_others() const noexcept; - [[nodiscard]] bool operator==(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<=>(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<(totally_ordered_with_others const&) const; + bool operator==(totally_ordered_with_others const&) const; + auto operator<=>(totally_ordered_with_others const&) const; + auto operator<(totally_ordered_with_others const&) const; }; struct no_gt_not_totally_ordered_with { - [[nodiscard]] bool operator==(no_gt_not_totally_ordered_with const&) const = default; - [[nodiscard]] auto operator<=>(no_gt_not_totally_ordered_with const&) const = default; + bool operator==(no_gt_not_totally_ordered_with const&) const = default; + auto operator<=>(no_gt_not_totally_ordered_with const&) const = default; operator totally_ordered_with_others() const noexcept; - [[nodiscard]] bool operator==(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<=>(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator>(totally_ordered_with_others const&) const; + bool operator==(totally_ordered_with_others const&) const; + auto operator<=>(totally_ordered_with_others const&) const; + auto operator>(totally_ordered_with_others const&) const; }; struct no_le_not_totally_ordered_with { - [[nodiscard]] bool operator==(no_le_not_totally_ordered_with const&) const = default; - [[nodiscard]] auto operator<=>(no_le_not_totally_ordered_with const&) const = default; + bool operator==(no_le_not_totally_ordered_with const&) const = default; + auto operator<=>(no_le_not_totally_ordered_with const&) const = default; operator totally_ordered_with_others() const noexcept; - [[nodiscard]] bool operator==(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<=>(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<=(totally_ordered_with_others const&) const; + bool operator==(totally_ordered_with_others const&) const; + auto operator<=>(totally_ordered_with_others const&) const; + auto operator<=(totally_ordered_with_others const&) const; }; struct no_ge_not_totally_ordered_with { - [[nodiscard]] bool operator==(no_ge_not_totally_ordered_with const&) const = default; - [[nodiscard]] auto operator<=>(no_ge_not_totally_ordered_with const&) const = default; + bool operator==(no_ge_not_totally_ordered_with const&) const = default; + auto operator<=>(no_ge_not_totally_ordered_with const&) const = default; operator totally_ordered_with_others() const noexcept; - [[nodiscard]] bool operator==(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator<=>(totally_ordered_with_others const&) const; - [[nodiscard]] auto operator>=(totally_ordered_with_others const&) const; + bool operator==(totally_ordered_with_others const&) const; + auto operator<=>(totally_ordered_with_others const&) const; + auto operator>=(totally_ordered_with_others const&) const; }; struct partial_ordering_totally_ordered_with { - [[nodiscard]] auto operator<=>(partial_ordering_totally_ordered_with const&) const noexcept = default; - [[nodiscard]] std::partial_ordering operator<=>(totally_ordered_with_others const&) const noexcept; + auto operator<=>(partial_ordering_totally_ordered_with const&) const noexcept = default; + std::partial_ordering operator<=>(totally_ordered_with_others const&) const noexcept; operator totally_ordered_with_others() const; }; struct weak_ordering_totally_ordered_with { - [[nodiscard]] auto operator<=>(weak_ordering_totally_ordered_with const&) const noexcept = default; - [[nodiscard]] std::weak_ordering operator<=>(totally_ordered_with_others const&) const noexcept; + auto operator<=>(weak_ordering_totally_ordered_with const&) const noexcept = default; + std::weak_ordering operator<=>(totally_ordered_with_others const&) const noexcept; operator totally_ordered_with_others() const; }; struct strong_ordering_totally_ordered_with { - [[nodiscard]] auto operator<=>(strong_ordering_totally_ordered_with const&) const noexcept = default; - [[nodiscard]] std::strong_ordering operator<=>(totally_ordered_with_others const&) const noexcept; + auto operator<=>(strong_ordering_totally_ordered_with const&) const noexcept = default; + std::strong_ordering operator<=>(totally_ordered_with_others const&) const noexcept; operator totally_ordered_with_others() const; }; diff --git a/libcxx/test/support/test_iterators.h b/libcxx/test/support/test_iterators.h index 2ce5482..bb1671b 100644 --- a/libcxx/test/support/test_iterators.h +++ b/libcxx/test/support/test_iterators.h @@ -730,9 +730,9 @@ public: constexpr explicit stride_counting_iterator(I current) : base_(std::move(current)) {} - [[nodiscard]] constexpr I const& base() const& { return base_; } + constexpr I const& base() const& { return base_; } - [[nodiscard]] constexpr I base() && { return std::move(base_); } + constexpr I base() && { return std::move(base_); } constexpr difference_type stride_count() const { return stride_count_; } -- 2.7.4