/* { dg-do compile } */ /* { dg-options "-O3 -fno-ipa-sra -fdump-ipa-cp --param ipa-cp-eval-threshold=1" } */ int data; int fn(); int __attribute__((noinline)) f1 (int *p) { data = *p; fn (); return 0; } int __attribute__((noinline)) f2 (int *p) { *p = *p + 1; f1 (p); return 1; } int __attribute__((noinline)) f3 (int a, int *p) { *p = a - 2; f1 (p); return 1; } int f4 () { int i; for (i = 0; i < 100; i++) { int v = 2; f2 (&v); f3 (6, &v); } return 0; } /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=2" "cp" } } */ /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=3" "cp" } } */ /* { dg-final { scan-ipa-dump "Aggregate replacements: 0\\\[0]=4" "cp" } } */