summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard@metafoo.co.uk>2019-12-05 18:51:19 -0800
committerRichard Smith <richard@metafoo.co.uk>2019-12-09 14:54:06 -0800
commite6e6e34b95cfe03275943fde0db259cc7d57f4ad (patch)
treee646ed63dcfd9eaa1cd158b0e9220dbb6da9cac0 /clang/test/CXX/class/class.compare/class.spaceship/p3.cpp
parent295db41ce230d9b0f1e0d24829abf0fb772b31ff (diff)
downloadbcm5719-llvm-e6e6e34b95cfe03275943fde0db259cc7d57f4ad.tar.gz
bcm5719-llvm-e6e6e34b95cfe03275943fde0db259cc7d57f4ad.zip
[c++20] Defaulted comparison support for array members.
Diffstat (limited to 'clang/test/CXX/class/class.compare/class.spaceship/p3.cpp')
-rw-r--r--clang/test/CXX/class/class.compare/class.spaceship/p3.cpp24
1 files changed, 14 insertions, 10 deletions
diff --git a/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp b/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp
index e4be892cd7c..79fce259e4f 100644
--- a/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp
+++ b/clang/test/CXX/class/class.compare/class.spaceship/p3.cpp
@@ -10,14 +10,16 @@ namespace std {
}
struct A {
- int a, b, c;
+ int a, b[3], c;
std::strong_ordering operator<=>(const A&) const = default;
};
-static_assert(A{1, 2, 3} <= A{1, 2, 3});
-static_assert(A{1, 2, 3} <= A{0, 20, 3}); // expected-error {{failed}}
-static_assert(A{1, 2, 3} <= A{1, 0, 30}); // expected-error {{failed}}
-static_assert(A{1, 2, 3} <= A{1, 2, 0}); // expected-error {{failed}}
+static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 4, 5});
+static_assert(A{1, 2, 3, 4, 5} <= A{0, 20, 3, 4, 5}); // expected-error {{failed}}
+static_assert(A{1, 2, 3, 4, 5} <= A{1, 0, 30, 4, 5}); // expected-error {{failed}}
+static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 0, 40, 5}); // expected-error {{failed}}
+static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 0, 50}); // expected-error {{failed}}
+static_assert(A{1, 2, 3, 4, 5} <= A{1, 2, 3, 4, 0}); // expected-error {{failed}}
struct reverse_compare {
int n;
@@ -26,10 +28,12 @@ struct reverse_compare {
};
struct B {
- int a, b, c;
+ int a, b[3], c;
friend reverse_compare operator<=>(const B&, const B&) = default;
};
-static_assert(B{1, 2, 3} >= B{1, 2, 3});
-static_assert(B{1, 2, 3} >= B{0, 20, 3}); // expected-error {{failed}}
-static_assert(B{1, 2, 3} >= B{1, 0, 30}); // expected-error {{failed}}
-static_assert(B{1, 2, 3} >= B{1, 2, 0}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 4, 5});
+static_assert(B{1, 2, 3, 4, 5} >= B{0, 20, 3, 4, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} >= B{1, 0, 30, 4, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 0, 40, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 0, 50}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} >= B{1, 2, 3, 4, 0}); // expected-error {{failed}}
OpenPOWER on IntegriCloud