From: Zhouyi Zhou <yizhouz...@ict.ac.cn>

Sender: Zhouyi Zhou <yizhouz...@ict.ac.cn>
 
To: <gcc-patches@gcc.gnu.org>
 
Subject: [PATCH v2] inline fail reporting: reporting inline fail caused by 
overwritable function

When inline failed because of callee is overwritable, gcc will not report it 
in dump file as other inline failing cases do. This patch correct this.

ChangeLog:
2013-04-05  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 function


Signed-off-by: Zhouyi Zhou <yizhouz...@ict.ac.cn>

---
Index: gcc/cif-code.def
===================================================================
--- gcc/cif-code.def    (revision 197506)
+++ 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/ipa-inline.c
===================================================================
--- gcc/ipa-inline.c    (revision 197506)
+++ 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)
     {

Reply via email to