1*254986d2SHristo Hristov //===----------------------------------------------------------------------===//
2*254986d2SHristo Hristov //
3*254986d2SHristo Hristov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*254986d2SHristo Hristov // See https://llvm.org/LICENSE.txt for license information.
5*254986d2SHristo Hristov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*254986d2SHristo Hristov //
7*254986d2SHristo Hristov //===----------------------------------------------------------------------===//
8*254986d2SHristo Hristov // UNSUPPORTED: c++03, c++11, c++14, c++17
9*254986d2SHristo Hristov
10*254986d2SHristo Hristov // <array>
11*254986d2SHristo Hristov
12*254986d2SHristo Hristov // template<class T, size_t N>
13*254986d2SHristo Hristov // constexpr synth-three-way-result<T>
14*254986d2SHristo Hristov // operator<=>(const array<T, N>& x, const array<T, N>& y);
15*254986d2SHristo Hristov
16*254986d2SHristo Hristov // arrays with different sizes should not compare
17*254986d2SHristo Hristov
18*254986d2SHristo Hristov #include <array>
19*254986d2SHristo Hristov
main(int,char **)20*254986d2SHristo Hristov int main(int, char**) {
21*254986d2SHristo Hristov {
22*254986d2SHristo Hristov std::array a1{1};
23*254986d2SHristo Hristov std::array a2{1, 2};
24*254986d2SHristo Hristov
25*254986d2SHristo Hristov // expected-error@*:* {{invalid operands to binary expression}}
26*254986d2SHristo Hristov a1 <=> a2;
27*254986d2SHristo Hristov }
28*254986d2SHristo Hristov {
29*254986d2SHristo Hristov std::array a1{1, 2};
30*254986d2SHristo Hristov std::array a2{1};
31*254986d2SHristo Hristov
32*254986d2SHristo Hristov // expected-error@*:* {{invalid operands to binary expression}}
33*254986d2SHristo Hristov a1 <=> a2;
34*254986d2SHristo Hristov }
35*254986d2SHristo Hristov
36*254986d2SHristo Hristov return 0;
37*254986d2SHristo Hristov }
38