1 // PR middle-end/15069
2 // { dg-do run }
3 // { dg-options "-O2" }
4 
5 extern "C" void abort (void);
6 
7 typedef enum {
8   FOUR = 4,
9   FIVE = 5
10 } direction_t;
11 
main()12 int main ()
13 {
14   direction_t four = FOUR;
15   int flags = (four & 4L) ? (32L | 128L) : 0;
16   flags &= 32L;
17 
18   if (flags == 0)
19     abort ();
20 }
21 
22