On Mon, Apr 8, 2013 at 5:48 PM, Richard Biener <richard.guent...@gmail.com> wrote: >Can you trigger this message to show up with -Winline before/after the patch? >Can you please add a testcase then? Thanks Richard for reviewing, from my point of view about gcc and my invoking of gcc, -Winline only works on callees that be declared "inline", but if the callee is declared "inline", it will be AVAIL_AVAILABLE in function can_inline_edge_p, thus out of the range of my patch.
So I only add a testcase for fixing the tree dump, are there any thing more I can do? Regtested/bootstrapped on x86_64-linux ChangeLog: 2013-04-08 Zhouyi Zhou <yizhouz...@ict.ac.cn> * cif-code.def (OVERWRITABLE): correct the comment for overwritable function * ipa-inline.c (can_inline_edge_p): let dump mechanism report the inline fail caused by overwritable functions. * gcc.dg/tree-ssa/inline-11.c: New test Index: gcc/cif-code.def =================================================================== --- gcc/cif-code.def (revision 197549) +++ gcc/cif-code.def (working copy) @@ -48,7 +48,7 @@ DEFCIFCODE(REDEFINED_EXTERN_INLINE, /* Function is not inlinable. */ DEFCIFCODE(FUNCTION_NOT_INLINABLE, N_("function not inlinable")) -/* Function is not overwritable. */ +/* Function is overwritable. */ DEFCIFCODE(OVERWRITABLE, N_("function body can be overwritten at link time")) /* Function is not an inlining candidate. */ Index: gcc/testsuite/gcc.dg/tree-ssa/inline-11.c =================================================================== --- gcc/testsuite/gcc.dg/tree-ssa/inline-11.c (revision 0) +++ gcc/testsuite/gcc.dg/tree-ssa/inline-11.c (working copy) @@ -0,0 +1,13 @@ +/* { dg-do compile } */ +/* { dg-options "-O2 -fdump-tree-einline" } */ +int w; +int bar (void) __attribute__ ((weak)); +int bar (){ + w++; +} +void foo() +{ + bar(); +} +/* { dg-final { scan-tree-dump-times "function body can be overwritten at link time" 1 "einline" } } */ +/* { dg-final { cleanup-tree-dump "einline" } } */ Index: gcc/ipa-inline.c =================================================================== --- gcc/ipa-inline.c (revision 197549) +++ gcc/ipa-inline.c (working copy) @@ -266,7 +266,7 @@ can_inline_edge_p (struct cgraph_edge *e else if (avail <= AVAIL_OVERWRITABLE) { e->inline_failed = CIF_OVERWRITABLE; - return false; + inlinable = false; } else if (e->call_stmt_cannot_inline_p) {