// { dg-do run }
// { dg-options "-O3" }

int printf(const char *, ...);
short a;
long b = 3, c;
int d(int e) {
  switch (e)
  case 111:
  case 222:
  case 44:
    return 0;
  return e;
}
int main() {
  for (; a >= 0; --a)
    if (d(c + 23) - 23)
      b = 0;

  if (b != 3)
    __builtin_abort ();
}