diff options
Diffstat (limited to 'contrib/gcc/c-objc-common.c')
-rw-r--r-- | contrib/gcc/c-objc-common.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/contrib/gcc/c-objc-common.c b/contrib/gcc/c-objc-common.c index 6554cf5..0ed3869 100644 --- a/contrib/gcc/c-objc-common.c +++ b/contrib/gcc/c-objc-common.c @@ -59,6 +59,9 @@ int c_disregard_inline_limits (fn) tree fn; { + if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) != NULL) + return 1; + return DECL_DECLARED_INLINE_P (fn) && DECL_EXTERNAL (fn); } @@ -142,6 +145,10 @@ c_cannot_inline_tree_fn (fnp) tree fn = *fnp; tree t; + if (flag_really_no_inline + && lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn)) == NULL) + return 1; + if (! function_attribute_inlinable_p (fn)) { DECL_UNINLINABLE (fn) = 1; @@ -317,7 +324,7 @@ finish_cdtor (body) RECHAIN_STMTS (body, COMPOUND_BODY (body)); - finish_function (0); + finish_function (0, 0); } /* Called at end of parsing, but before end-of-file processing. */ |