1 /* { dg-do compile } */
2 
3 short a, c;
4 union {
5     unsigned f0;
6     unsigned short f1;
7 } b;
8 volatile int d;
fn1(short p1)9 short fn1(short p1) { return p1 + a; }
fn2()10 void fn2()
11 {
12   b.f0 = 0;
13   for (;; b.f0 = fn1(b.f0))
14     (c && b.f1) || d;
15 }
16