blob: 218f80573c00846bc4b1b25af833cf30c64c3afc [file] [log] [blame]
/* { dg-options "-O2 -fdump-ipa-inline-details -fno-early-inlining " } */
/* { dg-add-options bind_pic_locally } */
int j,k,l;
int test3(int);
int test4(int);
static inline int
test2(int i)
{
if (__builtin_constant_p (i))
{
switch (i)
{
case 1: return j;
case 2: return k;
case 3: return l;
}
}
else return test3(i)+test4(i);
}
static inline int
test (int i)
{
return test2(i) + test2(i+1) + test3 (i) + test3(i) + test3(i) + test3 (i);
}
int
run (int i)
{
return test (i) + test (i);
}
/* The test should work by first inlining test2->test and then test to run
Both are called twice, so 4 hints (the second make sure that we propagate
to callers. */
/* { dg-final { scan-ipa-dump-times "hints: declared_inline builtin_constant_p" 4 "inline" } } */