(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp2a/
spaceship-err5.C
// { 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." }
}