Hi,
tree_inlinable_function_p issues the -Winline warning only if
/* We only warn for functions declared `inline' by the user. */
do_warning = (warn_inline
&& DECL_DECLARED_INLINE_P (fn)
&& !DECL_NO_INLINE_WARNING_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn));
is true, so in particular only if DECL_NO_INLINE_WARNING_P is not set. Now
expand_call_inline also issues the -Winline warning
else if (warn_inline && DECL_DECLARED_INLINE_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn)
&& reason != CIF_UNSPECIFIED
&& !lookup_attribute ("noinline", DECL_ATTRIBUTES (fn))
/* Do not warn about not inlined recursive calls. */
&& !cgraph_edge_recursive_p (cg_edge)
/* Avoid warnings during early inline pass. */
&& cgraph_global_info_ready)
but disregards the DECL_NO_INLINE_WARNING_P flag.
Tested on i586-suse-linux, OK for the mainline?
2011-04-19 Eric Botcazou <[email protected]>
* tree-inline.c (expand_call_inline): Do not issue a -Winline warning
if DECL_NO_INLINE_WARNING_P is set on the function.
--
Eric Botcazou
Index: tree-inline.c
===================================================================
--- tree-inline.c (revision 172693)
+++ tree-inline.c (working copy)
@@ -3744,7 +3744,9 @@ expand_call_inline (basic_block bb, gimp
_(cgraph_inline_failed_string (reason)));
sorry ("called from here");
}
- else if (warn_inline && DECL_DECLARED_INLINE_P (fn)
+ else if (warn_inline
+ && DECL_DECLARED_INLINE_P (fn)
+ && !DECL_NO_INLINE_WARNING_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn)
&& reason != CIF_UNSPECIFIED
&& !lookup_attribute ("noinline", DECL_ATTRIBUTES (fn))