1 /* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining -fno-ipa-cp" } */ 2 /* { dg-add-options bind_pic_locally } */ 3 4 void abort (void); 5 int scc_entry (int); 6 int sum; 7 int a[10]; 8 int scc_next(int c)9scc_next (int c) 10 { 11 int i; 12 for (i=0;i<c;i++) 13 a[i]=c; 14 scc_entry (c); 15 } 16 int scc_entry(int c)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 } 26 int main()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