view gcc/testsuite/g++.dg/opt/enum1.C @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
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;
}