// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101282 | |
// { dg-do run } | |
void main() | |
{ | |
struct S101282 | |
{ | |
int impl; | |
S101282 opUnary(string op : "-")() | |
{ | |
return S101282(-impl); | |
} | |
int opCmp(int i) | |
{ | |
return (impl < i) ? -1 : (impl > i) ? 1 : 0; | |
} | |
} | |
auto a = S101282(120); | |
a = -a; | |
assert(a.impl == -120); | |
a = a >= 0 ? a : -a; | |
assert(a.impl == 120); | |
} |