diff options
author | Zhouyi Zhou <yizhouzhou@ict.ac.cn> | 2013-04-10 09:22:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-04-10 09:22:04 +0000 |
commit | 6957a6f6f90ef5be56e154ee7ce8656ec0248e6f (patch) | |
tree | 72a7d68e142e1cc9ac621e45bb6e3ba5fc93b548 /gcc | |
parent | 34ab4a5b70675e801d0cd5a68b50e770d1fe864e (diff) | |
download | gcc-6957a6f6f90ef5be56e154ee7ce8656ec0248e6f.zip gcc-6957a6f6f90ef5be56e154ee7ce8656ec0248e6f.tar.gz gcc-6957a6f6f90ef5be56e154ee7ce8656ec0248e6f.tar.bz2 |
cif-code.def (OVERWRITABLE): Correct the comment for overwritable function.
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.
* gcc.dg/tree-ssa/inline-11.c: New test
From-SVN: r197667
Diffstat (limited to 'gcc')
-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" } } */ |