view gcc/testsuite/g++.dg/opt/enum1.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// Verify that we don't confuse precision and mode for enums.
// { dg-do run }
// { dg-options "-O" }

extern "C" void abort();

enum E {
  zero = 0, 
  test = 0xbb
};

static bool foo(unsigned char *x)
{
  E e = static_cast<E>(*x);
  switch (e)
    {
    case test:
      return true;
    default:
      return false;
    }
}

int main()
{
  unsigned char dummy = test;
  if (! foo(&dummy))
    abort ();
  return 0;
}