re PR ipa/63416 (Three calls to empty functions via pointers get folded, but not inlined)
PR ipa/64316 * gcc.dg/ipa/pr63416.c: New testcase. From-SVN: r240081
This commit is contained in:
parent
2501129262
commit
e3912107f8
@ -1,3 +1,8 @@
|
||||
2016-08-09 Jan Hubicka <hubicka@ucw.cz>
|
||||
|
||||
PR ipa/64316
|
||||
* gcc.dg/ipa/pr63416.c: New testcase.
|
||||
|
||||
2016-09-10 Paul Thomas <pault@gcc.gnu.org>
|
||||
Steven G. Kargl <kargl@gcc.gnu.org>
|
||||
|
||||
|
56
gcc/testsuite/gcc.dg/ipa/pr63416.c
Normal file
56
gcc/testsuite/gcc.dg/ipa/pr63416.c
Normal file
@ -0,0 +1,56 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-O2 -fdump-tree-optimized" } */
|
||||
#define _UNUSED_ __attribute__((__unused__))
|
||||
|
||||
typedef int TEST_F30 (int *v);
|
||||
typedef void TEST_F31 (int *v);
|
||||
typedef void TEST_F32 (int *v, int r);
|
||||
|
||||
typedef struct TEST_T30_ {
|
||||
TEST_F30 * pf30;
|
||||
TEST_F31 * pf31;
|
||||
TEST_F32 * pf32;
|
||||
} TEST_T30;
|
||||
|
||||
static inline
|
||||
int test_f30 (int *v)
|
||||
{
|
||||
*v = 1;
|
||||
return 0;
|
||||
}//test_f30()
|
||||
|
||||
static inline
|
||||
void test_f31 (int *v _UNUSED_)
|
||||
{
|
||||
}//test_f31()
|
||||
|
||||
static inline
|
||||
void test_f32 (int *v, int r _UNUSED_)
|
||||
{
|
||||
*v = 0;
|
||||
}//test_f32()
|
||||
|
||||
static const
|
||||
TEST_T30 test_t30 = {
|
||||
.pf30 = test_f30,
|
||||
.pf31 = test_f31,
|
||||
.pf32 = test_f32,
|
||||
};
|
||||
|
||||
static inline
|
||||
int test_f10 (const TEST_T30 *pt30, int *v)
|
||||
{
|
||||
int r = pt30->pf30(v);
|
||||
pt30->pf31(v);
|
||||
pt30->pf32(v, r);
|
||||
return 0;
|
||||
}//test_f10()
|
||||
|
||||
int test_f00 (int *v)
|
||||
{
|
||||
return test_f10(&test_t30, v);
|
||||
}//test_f00()
|
||||
|
||||
/* Everything should be inlined and only test_f00 body should appear. */
|
||||
/* { dg-final { scan-tree-dump-not "test_f10" "optimized" } } */
|
||||
/* { dg-final { scan-tree-dump-not "test_f3" "optimized" } } */
|
Loading…
Reference in New Issue
Block a user