aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/cif-code.def2
-rw-r--r--gcc/ipa-inline.c2
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/inline-11.c14
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" } } */