diff options
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/cif-code.def | 2 | ||||
-rw-r--r-- | gcc/ipa-inline.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/inline-11.c | 14 |
5 files changed, 27 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 3e3e3b7..b8a6789 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2013-04-10 Zhouyi Zhou <yizhouzhou@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. + 2013-04-10 Chung-Ju Wu <jasonwucj@gmail.com> * combine.c (simplify_compare_const): Use GET_MODE_MASK to filter out diff --git a/gcc/cif-code.def b/gcc/cif-code.def index 55e0ef4..d1c4941 100644 --- a/gcc/cif-code.def +++ b/gcc/cif-code.def @@ -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. */ diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index 90b2a13..171d6a2 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -266,7 +266,7 @@ can_inline_edge_p (struct cgraph_edge *e, bool report) else if (avail <= AVAIL_OVERWRITABLE) { e->inline_failed = CIF_OVERWRITABLE; - return false; + inlinable = false; } else if (e->call_stmt_cannot_inline_p) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6b44c64..13585fc 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2013-04-10 Zhouyi Zhou <yizhouzhou@ict.ac.cn> + + * gcc.dg/tree-ssa/inline-11.c: New test + 2013-04-10 Jakub Jelinek <jakub@redhat.com> PR c++/56895 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/inline-11.c b/gcc/testsuite/gcc.dg/tree-ssa/inline-11.c new file mode 100644 index 0000000..7d45ec1 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/inline-11.c @@ -0,0 +1,14 @@ +/* { dg-do compile } */ +/* { dg-require-weak "" } */ +/* { 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" } } */ |