diff options
author | Jan Hubicka <jh@suse.cz> | 2013-08-05 16:51:37 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2013-08-05 14:51:37 +0000 |
commit | 51a5c0c2b26ff09ceba355b45dedde5bac1b0560 (patch) | |
tree | 55b33a90f0a48abd0d1d39a094f6327004fbb3b0 /gcc/ipa.c | |
parent | 65f0a1207d8127d07a33089379bfd962f600bd19 (diff) | |
download | gcc-51a5c0c2b26ff09ceba355b45dedde5bac1b0560.zip gcc-51a5c0c2b26ff09ceba355b45dedde5bac1b0560.tar.gz gcc-51a5c0c2b26ff09ceba355b45dedde5bac1b0560.tar.bz2 |
re PR lto/57602 (Runfails for several C/C++ benchmarks from spec2000 for i686 with -flto after r199422)
PR lto/57602
* cgraph.c (verify_cgraph_node): Accept local flags from other partitions.
* ipa.c (symtab_remove_unreachable_nodes): Do not clear local flag.
(function_and_variable_visibility): Likewise.
* trans-mem.c (ipa_tm_create_version): TM versions are not local.
From-SVN: r201492
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r-- | gcc/ipa.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -376,7 +376,15 @@ symtab_remove_unreachable_nodes (bool before_inlining_p, FILE *file) { if (file) fprintf (file, " %s", cgraph_node_name (node)); - cgraph_reset_node (node); + node->symbol.analyzed = false; + node->symbol.definition = false; + node->symbol.cpp_implicit_alias = false; + node->symbol.alias = false; + node->symbol.weakref = false; + if (!node->symbol.in_other_partition) + node->local.local = false; + cgraph_node_remove_callees (node); + ipa_remove_all_references (&node->symbol.ref_list); changed = true; } } @@ -888,7 +896,7 @@ function_and_variable_visibility (bool whole_program) } FOR_EACH_DEFINED_FUNCTION (node) { - node->local.local = cgraph_local_node_p (node); + node->local.local |= cgraph_local_node_p (node); /* If we know that function can not be overwritten by a different semantics and moreover its section can not be discarded, replace all direct calls |