1 /*
2 { dg-do run }
3 { dg-options "-O2" }
4 */
5
6 extern void abort (void);
7
8 enum Status
9 {
10 P_ON_LOWER = -4,
11 P_ON_UPPER = -2,
12 P_FREE = -1
13 };
14
15 void
foo(enum Status * stat,double newUpper,double lower,double max)16 foo (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
24 int
main()25 main ()
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