1 /* { dg-do compile } */
2 /* { dg-options "-O2 -fdump-tree-dom2-details" } */
3 
4 void foo();
5 void bla();
6 void bar();
7 
dont_thread_1(void)8 void dont_thread_1 (void)
9 {
10   int i = 0;
11   int first = 1;
12 
13   do
14     {
15       if (first)
16 	foo ();
17       else
18 	bar ();
19 
20       first = 0;
21       bla ();
22     } while (i++ < 100);
23 }
24 
25 /* This one can only be threaded if both paths to the
26    conditional inside the loop are threaded at the same
27    time.  Else we potentially end up with irreducible
28    loops.  */
29 /* { dg-final { scan-tree-dump-not "IRREDUCIBLE_LOOP" "dom2" } } */
30