mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-18 23:51:08 +08:00
re PR middle-end/49378 (C++ is broken)
PR middle-end/49378 * ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out aliases and thunks. From-SVN: r174969
This commit is contained in:
parent
8a752dfea6
commit
903b0a8b68
@ -1,3 +1,9 @@
|
||||
2011-06-11 Jan Hubicka <jh@suse.cz>
|
||||
|
||||
PR middle-end/49378
|
||||
* ipa.c (cgraph_non_local_node_p_1, cgraph_local_node_p): Rule out
|
||||
aliases and thunks.
|
||||
|
||||
2011-06-12 Ira Rosen <ira.rosen@linaro.org>
|
||||
|
||||
* tree-vect-data-refs.c (vect_peeling_hash_get_most_frequent):
|
||||
|
10
gcc/ipa.c
10
gcc/ipa.c
@ -119,7 +119,9 @@ process_references (struct ipa_ref_list *list,
|
||||
static bool
|
||||
cgraph_non_local_node_p_1 (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED)
|
||||
{
|
||||
/* FIXME: Aliases can be local, but i386 gets thunks wrong then. */
|
||||
return !(cgraph_only_called_directly_or_aliased_p (node)
|
||||
&& !ipa_ref_has_aliases_p (&node->ref_list)
|
||||
&& node->analyzed
|
||||
&& !DECL_EXTERNAL (node->decl)
|
||||
&& !node->local.externally_visible
|
||||
@ -132,7 +134,13 @@ cgraph_non_local_node_p_1 (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED
|
||||
static bool
|
||||
cgraph_local_node_p (struct cgraph_node *node)
|
||||
{
|
||||
return !cgraph_for_node_and_aliases (cgraph_function_or_thunk_node (node, NULL),
|
||||
struct cgraph_node *n = cgraph_function_or_thunk_node (node, NULL);
|
||||
|
||||
/* FIXME: thunks can be considered local, but we need prevent i386
|
||||
from attempting to change calling convention of them. */
|
||||
if (n->thunk.thunk_p)
|
||||
return false;
|
||||
return !cgraph_for_node_and_aliases (n,
|
||||
cgraph_non_local_node_p_1, NULL, true);
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user