blob: fac3c28904ceef5370cb0e3e44b828e44f9cb4fe (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
// P0847R7
// { dg-do run { target c++23 } }
// defaulted comparison operators
#include <compare>
struct S {
int _v;
bool operator==(this S const&, S const&) = default;
auto operator<=>(this S const&, S const&) = default;
};
int main()
{
S const a_10{10};
S const b_10{10};
S const c_20{20};
S const d_5{5};
if (a_10 != b_10)
__builtin_abort ();
if (c_20 == a_10)
__builtin_abort ();
if (!(a_10 == b_10))
__builtin_abort ();
if (!(c_20 != a_10))
__builtin_abort ();
if (a_10 < b_10)
__builtin_abort ();
if (a_10 > b_10)
__builtin_abort ();
if (!(a_10 <= b_10))
__builtin_abort ();
if (!(a_10 >= b_10))
__builtin_abort ();
if (!(a_10 < c_20))
__builtin_abort ();
if (a_10 > c_20)
__builtin_abort ();
if (!(a_10 <= c_20))
__builtin_abort ();
if (a_10 >= c_20)
__builtin_abort ();
if (a_10 < d_5)
__builtin_abort ();
if (!(a_10 > d_5))
__builtin_abort ();
if (a_10 <= d_5)
__builtin_abort ();
if (!(a_10 >= d_5))
__builtin_abort ();
}
|