aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-objc-common.c
diff options
context:
space:
mode:
authorNathan Froyd <froydnj@codesourcery.com>2007-08-02 14:42:53 +0000
committerNathan Froyd <froydnj@gcc.gnu.org>2007-08-02 14:42:53 +0000
commit50926624ca06e49e824729da94a176281733fb74 (patch)
tree330cb2f1673bfac2868767a778633e959dbcb9b1 /gcc/c-objc-common.c
parentd236f595e8fac9678388240b04c1ae25082f1d2a (diff)
downloadgcc-50926624ca06e49e824729da94a176281733fb74.zip
gcc-50926624ca06e49e824729da94a176281733fb74.tar.gz
gcc-50926624ca06e49e824729da94a176281733fb74.tar.bz2
re PR middle-end/25446 (-fpic/-fPIC failure in gcc.dg/vect/vect-ifcvt-9.c)
PR middle-end/25446 * c-objc-common.c (c_cannot_inline_tree_fn): Check for an always_inline attribute on the function decl. From-SVN: r127163
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 "