diff options
author | Jan Hubicka <jh@suse.cz> | 2004-01-14 23:54:50 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2004-01-14 22:54:50 +0000 |
commit | 95c755e90f94c5fbeed8cf58896d114989f9c771 (patch) | |
tree | 8b1b7c30c31af7eeaa57d8ea5898e75bae608347 /gcc/cgraphunit.c | |
parent | 092b50e2d7faa1cf0441da77a0d2d72a983276b1 (diff) | |
download | gcc-95c755e90f94c5fbeed8cf58896d114989f9c771.zip gcc-95c755e90f94c5fbeed8cf58896d114989f9c771.tar.gz gcc-95c755e90f94c5fbeed8cf58896d114989f9c771.tar.bz2 |
cgraph.c (create_edge): Use local.redefined_extern_inline.
* cgraph.c (create_edge): Use local.redefined_extern_inline.
* cgraph.h (cgraph_local_info): Sort fields by size; add
redefined_extern_inline
(cgraph_global_info): Sort fields by size.
(cgraph_node): Likewise.
* cgraphunit.c (cgraph_finalize_function): Se
local.redefined_extern_inline on redefinition.
(cgraph_analyze_function): Use it; fix formating.
From-SVN: r75890
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r-- | gcc/cgraphunit.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c index e26a2c1..27e4d8d 100644 --- a/gcc/cgraphunit.c +++ b/gcc/cgraphunit.c @@ -184,6 +184,7 @@ cgraph_finalize_function (tree decl, bool nested) memset (&node->global, 0, sizeof (node->global)); memset (&node->rtl, 0, sizeof (node->rtl)); node->analyzed = false; + node->local.redefined_extern_inline = true; while (node->callees) cgraph_remove_edge (node, node->callees->callee); @@ -330,8 +331,15 @@ cgraph_analyze_function (struct cgraph_node *node) = (*lang_hooks.tree_inlining.disregard_inline_limits) (decl); for (e = node->callers; e; e = e->next_caller) if (e->inline_failed) - e->inline_failed = (!node->local.inlinable ? N_("function not inlinable") - : N_("function not considered for inlining")); + { + if (node->local.redefined_extern_inline) + e->inline_failed = N_("redefined extern inline functions are not " + "considered for inlining"); + else if (!node->local.inlinable) + e->inline_failed = N_("function not inlinable"); + else + e->inline_failed = N_("function not considered for inlining"); + } if (flag_really_no_inline && !node->local.disregard_inline_limits) node->local.inlinable = 0; /* Inlining characteristics are maintained by the cgraph_mark_inline. */ |