1 /* PR bootstrap/4192
2    This testcase caused infinite loop in flow (several places),
3    because flow assumes gen_jump generates simple_jump_p.  */
4 
5 /* { dg-require-effective-target indirect_calls } */
6 
7 typedef void (*T) (void);
8 extern T x[];
9 
10 void
foo(void)11 foo (void)
12 {
13   static T *p = x;
14   static _Bool a;
15   T f;
16 
17   if (__builtin_expect (a, 0))
18     return;
19 
20   while ((f = *p))
21     {
22       p++;
23       f ();
24     }
25   a = 1;
26 }
27