1 /* { dg-do compile } */
2 
3 typedef struct a {
4   struct a *b;
5 } a;
6 
7 extern int d(void);
8 extern int g(void);
9 extern int h(void);
10 extern int _setjmp(void *);
11 
c(void)12 int c(void)
13 {
14   1 ? d() : 0;
15 
16   a *e;
17   while (e) {
18       e = (e == (a *) c) ? 0 : e->b;
19       while (e) {
20 	  int f = 0;
21 	  g();
22 	  if (_setjmp(0)) {
23 	      if (f & 6) {
24 		  ;
25 	      } else if (f & 2) {
26 		  h();
27 	      }
28 	  }
29       }
30   }
31 }
32