1/*
2{ dg-do run }
3{ dg-options "-O2" }
4*/
5
6extern void abort (void);
7
8enum Status
9{
10  P_ON_LOWER = -4,
11  P_ON_UPPER = -2,
12  P_FREE = -1
13};
14
15void
16foo (enum Status *stat, double newUpper, double lower, double max)
17{
18  if (newUpper >= max)
19    *stat = P_FREE;
20  else if (newUpper == lower)
21    *stat = P_ON_LOWER;
22}
23
24int
25main ()
26{
27  enum Status stat = P_ON_UPPER;
28
29  foo (&stat, 5.0, -10.0, 10.0);
30
31  if (stat != P_ON_UPPER)
32    abort ();
33  return 0;
34}
35