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