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  
       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  }
      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"  } } */