// { dg-do run }

typedef enum { zero = 0, one = 1, two = 2, ENUM_MAX = 3 } my_enum;
my_enum e;
extern "C" void abort (void);
int __attribute__((noinline)) foo() { return 10; }
int main()
{
  int r;
  r = foo();
  if ((r < 0) || (r >= ENUM_MAX))
    return 0;
  e = (my_enum)r;
  abort ();
}