(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
remref-1b.c
       1  /* Verify that indirect inlining can also remove references of the functions it
       2     discovers calls for, even when nodes being inlined are virtual IPA-CP
       3     clones.  */
       4  /* { dg-do compile } */
       5  /* { dg-options "-O3 -fno-early-inlining -fdump-ipa-cp-details -fdump-ipa-inline -fdump-tree-optimized"  } */
       6  
       7  int global;
       8  
       9  void __attribute__ ((noinline, noclone, used))
      10  stuff (int i)
      11  {
      12    global = i;
      13  }
      14  
      15  static void hooray ()
      16  {
      17    stuff (1);
      18  }
      19  
      20  static void hiphip (void (*f)())
      21  {
      22    stuff (2);
      23    f ();
      24  }
      25  
      26  int main (void)
      27  {
      28    hiphip (hooray);
      29    return 0;
      30  }
      31  
      32  /* { dg-final { scan-ipa-dump "removing its cloning-created reference"  "cp"  } } */
      33  /* { dg-final { scan-ipa-dump "ipa-prop: Removed a reference"  "inline"  } } */
      34  /* { dg-final { scan-tree-dump-not "hooray"  "optimized"  } } */