1 /* { dg-do compile } */
2 /* { dg-options "-Os -c -fdump-ipa-inline-all -fopt-info-inline -fno-early-inlining -fno-partial-inlining -fno-ipa-cp"  } */
3 /* { dg-add-options bind_pic_locally } */
4 
5 void work_hard (void);
6 
do_something(int shall_i_work)7 void do_something (int shall_i_work)
8 {
9   if (shall_i_work)
10     {
11       work_hard ();
12       work_hard ();
13       work_hard ();
14       work_hard ();
15       work_hard ();
16       work_hard ();
17       work_hard ();
18       work_hard ();
19     }
20 }
foo(int invariant)21 int foo (int invariant)
22 {
23   do_something (0); // { dg-optimized "Inlined do_something/\[0-9]+ into foo/\[0-9]+" }
24   do_something (1);
25 }
26 
27 
28 /* We should inline do_something(0),  but not do_something (1).  */
29 /* { dg-final { scan-ipa-dump "Inlined 1 calls, eliminated 0 functions"  "inline"  } } */
30 /* Call to work_hard should be detected as optimized out.  */
31 /* { dg-final { scan-ipa-dump-times "predicate: .false." 8 "inline"  } } */
32