aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-objc-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/c-objc-common.c')
-rw-r--r--gcc/c-objc-common.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/c-objc-common.c b/gcc/c-objc-common.c
index 226872e..9999840 100644
--- a/gcc/c-objc-common.c
+++ b/gcc/c-objc-common.c
@@ -72,9 +72,9 @@ c_cannot_inline_tree_fn (tree *fnp)
&& DECL_INLINE (fn)
&& DECL_DECLARED_INLINE_P (fn)
&& !DECL_IN_SYSTEM_HEADER (fn));
+ tree always_inline = lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn));
- if (flag_really_no_inline
- && lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL)
+ if (flag_really_no_inline && always_inline == NULL)
{
if (do_warning)
warning (OPT_Winline, "function %q+F can never be inlined because it "
@@ -84,7 +84,9 @@ c_cannot_inline_tree_fn (tree *fnp)
/* Don't auto-inline anything that might not be bound within
this unit of translation. */
- if (!DECL_DECLARED_INLINE_P (fn) && !targetm.binds_local_p (fn))
+ if (always_inline == NULL
+ && !DECL_DECLARED_INLINE_P (fn)
+ && !targetm.binds_local_p (fn))
{
if (do_warning)
warning (OPT_Winline, "function %q+F can never be inlined because it "