1  /* { dg-options "-O3 -fopt-info-inline-optimized-missed" } */
       2  
       3  static int foo (int a)
       4  {
       5    return a + 10;
       6  }
       7  
       8  static int bar (int b)
       9  {
      10    return b - 20;
      11  }
      12  
      13  static int boo (int a, int b)
      14  {
      15    return (foo (a)     /* { dg-optimized "Inlining foo/\[0-9\]+ into boo/\[0-9\]+" } */
      16  	  + bar (b)); /* { dg-optimized "Inlining bar/\[0-9\]+ into boo/\[0-9\]+" } */
      17  }
      18  
      19  extern int v_a, v_b;
      20  extern int result;
      21  
      22  int compute ()
      23  {
      24    result = boo (v_a, v_b); /* { dg-optimized "Inlining boo/\[0-9\]+ into compute/\[0-9\]+" } */
      25  
      26    return result;
      27  }
      28  
      29  extern void not_available(int);
      30  
      31  int __attribute__ ((noinline,noclone)) get_input(void)
      32  {
      33    return 1;
      34  }
      35  
      36  int test_1 ()
      37  {
      38    return get_input (); /* { dg-missed "not inlinable: test_1/\[0-9\]+ -> get_input/\[0-9\]+, function not inlinable" } */
      39  }
      40  
      41  void test_2 (int v)
      42  {
      43    not_available (1); /* { dg-missed "not inlinable: test_2/\[0-9\]+ -> not_available/\[0-9\]+, function body not available" } */
      44  }