1/* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining -fno-ipa-cp" } */ 2/* { dg-add-options bind_pic_locally } */ 3 4void abort (void); 5int scc_entry (int); 6int sum; 7int a[10]; 8int 9scc_next (int c) 10{ 11 int i; 12 for (i=0;i<c;i++) 13 a[i]=c; 14 scc_entry (c); 15} 16int 17scc_entry (int c) 18{ 19 int i; 20 for (i=0;i<c;i++) 21 sum+=a[i]; 22 if (c--) 23 scc_next (c); 24 return sum; 25} 26int 27main() 28{ 29 int sum; 30 int i; 31 for (i=0;i<10;i++) 32 scc_entry (i); 33 if (sum < 0) 34 abort (); 35 return 0; 36} 37/* { dg-final { scan-ipa-dump "in_scc" "inline" } } */ 38/* { dg-final { scan-ipa-dump "same_scc" "inline" } } */ 39/* Main is not in scc, the two functions are. */ 40/* { dg-final { scan-ipa-dump-times "In SCC" 2 "inline" } } */ 41/* { dg-final { cleanup-ipa-dump "inline" } } */ 42