view gcc/testsuite/g++.dg/opt/enum1.C @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +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;
}