/* { dg-options "-O3 -c -fdump-ipa-inline-details -fno-early-inlining -fno-ipa-cp"  } */
void abort (void);
int sum;
int a[10];
int
scc_next (int c)
{
  int i;
  for (i=0;i<c;i++)
    a[i]=c;
  scc_entry (c);
}
int
scc_entry (int c)
{
  int i;
  for (i=0;i<c;i++)
    sum+=a[i];
  if (c--)
    scc_next (c);
  return sum;
}
main()
{
  int sum;
  int i;
  for (i=0;i<10;i++)
    scc_entry (i);
  if (sum < 0)
    abort ();
  return 0;
}
/* { dg-final { scan-ipa-dump "in_scc"  "inline"  } } */
/* { dg-final { scan-ipa-dump "same_scc"  "inline"  } } */
/* Main is not in scc, the two functions are.  */
/* { dg-final { scan-ipa-dump-times "In SCC" 2 "inline"  } } */
/* { dg-final { cleanup-ipa-dump "inline" } } */
