aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/c-objc-common.c8
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 "