blob: 3dc2a0f23659701a6ff29b5338350d6e994b8ab6 [file] [log] [blame]
// { dg-do compile { target c++20 } }
// Test [depr.arith.conv.enum] for <=>.
#include <compare>
enum E1 { e } e1;
enum E2 { f } e2;
static double d;
void
g ()
{
void(e1 <=> e);
e1 <=> d; // { dg-error "invalid operands of types .E1. and .double." }
d <=> e1; // { dg-error "invalid operands of types .double. and .E1." }
e <=> d; // { dg-error "invalid operands of types .E1. and .double." }
d <=> e; // { dg-error "invalid operands of types .double. and .E1." }
e <=> f; // { dg-error "invalid operands of types .E1. and .E2." }
f <=> e; // { dg-error "invalid operands of types .E2. and .E1." }
e1 <=> e2; // { dg-error "invalid operands of types .E1. and .E2." }
e2 <=> e1; // { dg-error "invalid operands of types .E2. and .E1." }
}