summaryrefslogtreecommitdiffstats
path: root/clang/test/CXX/class/class.compare/class.eq/p3.cpp
diff options
context:
space:
mode:
authorRichard Smith <richard@metafoo.co.uk>2019-12-10 19:50:26 -0800
committerRichard Smith <richard@metafoo.co.uk>2019-12-10 19:54:35 -0800
commitffe612922cb5aa2767c79d47a1b162811a08583f (patch)
tree6bb9a155e5dc06a24077030144c19aa624231854 /clang/test/CXX/class/class.compare/class.eq/p3.cpp
parent8e0c9e21bf5f3e7a427b07e3eaf3bc80d2c74cb6 (diff)
downloadbcm5719-llvm-ffe612922cb5aa2767c79d47a1b162811a08583f.tar.gz
bcm5719-llvm-ffe612922cb5aa2767c79d47a1b162811a08583f.zip
[c++20] Implement P1946R0: allow defaulted comparisons to take their
arguments by value.
Diffstat (limited to 'clang/test/CXX/class/class.compare/class.eq/p3.cpp')
-rw-r--r--clang/test/CXX/class/class.compare/class.eq/p3.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/clang/test/CXX/class/class.compare/class.eq/p3.cpp b/clang/test/CXX/class/class.compare/class.eq/p3.cpp
index a7356b5381c..04db022fe73 100644
--- a/clang/test/CXX/class/class.compare/class.eq/p3.cpp
+++ b/clang/test/CXX/class/class.compare/class.eq/p3.cpp
@@ -11,3 +11,15 @@ static_assert(A{1, 2, 3, 4, 5} == A{1, 0, 3, 4, 5}); // expected-error {{failed}
static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 0, 4, 5}); // expected-error {{failed}}
static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 3, 0, 5}); // expected-error {{failed}}
static_assert(A{1, 2, 3, 4, 5} == A{1, 2, 3, 4, 0}); // expected-error {{failed}}
+
+struct B {
+ int a, b[3], c;
+ friend bool operator==(B, B) = default;
+};
+
+static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 4, 5});
+static_assert(B{1, 2, 3, 4, 5} == B{0, 2, 3, 4, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} == B{1, 0, 3, 4, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 0, 4, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 0, 5}); // expected-error {{failed}}
+static_assert(B{1, 2, 3, 4, 5} == B{1, 2, 3, 4, 0}); // expected-error {{failed}}
OpenPOWER on IntegriCloud