diff options
author | Nathan Froyd <froydnj@codesourcery.com> | 2007-08-02 14:42:53 +0000 |
---|---|---|
committer | Nathan Froyd <froydnj@gcc.gnu.org> | 2007-08-02 14:42:53 +0000 |
commit | 50926624ca06e49e824729da94a176281733fb74 (patch) | |
tree | 330cb2f1673bfac2868767a778633e959dbcb9b1 | |
parent | d236f595e8fac9678388240b04c1ae25082f1d2a (diff) | |
download | gcc-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
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/c-objc-common.c | 8 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e712c82..95106b1 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,11 @@ 2007-08-02 Nathan Froyd <froydnj@codesourcery.com> + PR middle-end/25446 + * c-objc-common.c (c_cannot_inline_tree_fn): Check for an + always_inline attribute on the function decl. + +2007-08-02 Nathan Froyd <froydnj@codesourcery.com> + PR middle-end/25445 * varasm.c (default_binds_local_p_1): Consult flag_whole_program if we are compiling with -fPIC. 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 " |