diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-13 02:35:27 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-13 01:35:27 +0000 |
commit | 2d3270129fac84d3d3420a1da10330404ccadc2a (patch) | |
tree | 45863b0867b1a5dca9004db917fa2c41f48f77a5 /gcc/tree-inline.c | |
parent | 04cc79bb8928ff2c97bef9df08dc252eecdc9845 (diff) | |
download | gcc-2d3270129fac84d3d3420a1da10330404ccadc2a.zip gcc-2d3270129fac84d3d3420a1da10330404ccadc2a.tar.gz gcc-2d3270129fac84d3d3420a1da10330404ccadc2a.tar.bz2 |
cgraphunit.c (cgraph_optimize_function): Always do optimize_inline_calls when there is always_inline callee.
* cgraphunit.c (cgraph_optimize_function): Always do
optimize_inline_calls when there is always_inline callee.
(cgraph_decide_inlining): Fix formating.
* tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
functions.
(expand_call_inline): Likewise.
* toplev.h (sorry): Fix prototype.
* gcc.dg/always_inline.c: New test.
* gcc.dg/debug/20031231-1.c: Fix.
From-SVN: r75781
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r-- | gcc/tree-inline.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c index 9d73be2..ea8edcf 100644 --- a/gcc/tree-inline.c +++ b/gcc/tree-inline.c @@ -1213,7 +1213,10 @@ inlinable_function_p (tree fn) && DECL_DECLARED_INLINE_P (fn) && !DECL_IN_SYSTEM_HEADER (fn)); - if (do_warning) + if (lookup_attribute ("always_inline", + DECL_ATTRIBUTES (fn))) + sorry (inline_forbidden_reason, fn, fn); + else if (do_warning) warning (inline_forbidden_reason, fn, fn); inlinable = false; @@ -1330,9 +1333,14 @@ expand_call_inline (tree *tp, int *walk_subtrees, void *data) inlining. */ if (!cgraph_inline_p (id->current_decl, fn, &reason)) { - if (warn_inline && DECL_DECLARED_INLINE_P (fn) - && !DECL_IN_SYSTEM_HEADER (fn) - && strlen (reason)) + if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))) + { + sorry ("%Jinlining failed in call to '%F': %s", fn, fn, reason); + sorry ("called from here"); + } + else if (warn_inline && DECL_DECLARED_INLINE_P (fn) + && !DECL_IN_SYSTEM_HEADER (fn) + && strlen (reason)) { warning ("%Jinlining failed in call to '%F': %s", fn, fn, reason); warning ("called from here"); |