/* PR c/65179 */
/* { dg-do compile } */
/* { dg-options "-O" } */

enum E {
  A = 0 << 1,
  B = 1 << 1,
  C = -1 << 1,
  /* { dg-error "not an integer constant" "no constant" { target { c++11 && c++17_down } } .-1 } */
  /* { dg-error "left operand of shift expression" "shift" { target { c++11 && c++17_down } } .-2 } */
  D = 0 >> 1,
  E = 1 >> 1,
  F = -1 >> 1
};

int
left (int x)
{
  /* Warn for LSHIFT_EXPR.  */
  const int z = 0;
  const int o = 1;
  const int m = -1;
  int r = 0;
  r += z << x;
  r += o << x;
  r += m << x; /* { dg-bogus "left shift of negative value" } */
  r += 0 << x;
  r += 1 << x;
  r += -1 << x; /* { dg-bogus "left shift of negative value" } */
  r += -1U << x;
  return r;
}

int
right (int x)
{
  /* Shouldn't warn for RSHIFT_EXPR.  */
  const int z = 0;
  const int o = 1;
  const int m = -1;
  int r = 0;
  r += z >> x;
  r += o >> x;
  r += m >> x;
  r += 0 >> x;
  r += 1 >> x;
  r += -1 >> x;
  r += -1U >> x;
  return r;
}
