(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
ipa/
ipcp-agg-13.c
       1  /* { dg-do compile } */
       2  /* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp --param ipa-cp-eval-threshold=1" } */
       3  
       4  int data;
       5  int fn();
       6  
       7  int __attribute__((noinline)) f1 (int *p)
       8  {
       9    data = *p;
      10    fn ();
      11    return 0;
      12  } 
      13  
      14  int __attribute__((noinline)) f2 (int *p)
      15  {
      16    *p = *p + 1;
      17    f1 (p);
      18    return 1;
      19  }
      20  
      21  int __attribute__((noinline)) f3 (int a, int *p)
      22  {
      23    *p = a - 2;
      24    f1 (p);
      25    return 1;
      26  }
      27  
      28  int f4 ()
      29  {
      30    int i;
      31  
      32    for (i = 0; i < 100; i++)
      33      {
      34         int v = 2;
      35  
      36         f2 (&v);
      37         f3 (6, &v);
      38      }
      39  
      40    return 0;
      41  }
      42  
      43  /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=2" "cp" } } */ 
      44  /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=3" "cp" } } */ 
      45  /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=4" "cp" } } */