aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2005-07-27 08:45:28 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2005-07-27 06:45:28 +0000
commit57a737092259093219f2f5bb95e3f70151a8f1dc (patch)
treea6edf89fff04535770557bb775c9a8946fe11b1a
parent9e52adc4097fa875e895eb70fa595c183afb5e7c (diff)
downloadgcc-57a737092259093219f2f5bb95e3f70151a8f1dc.zip
gcc-57a737092259093219f2f5bb95e3f70151a8f1dc.tar.gz
gcc-57a737092259093219f2f5bb95e3f70151a8f1dc.tar.bz2
cgraphunit.c (cgraph_function_and_variable_visibility): Set visibility flags correctly in whole program mode.
* cgraphunit.c (cgraph_function_and_variable_visibility): Set visibility flags correctly in whole program mode. From-SVN: r102415
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cgraphunit.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 06b638d..8ab2a1a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-27 Jan Hubicka <jh@suse.cz>
+
+ * cgraphunit.c (cgraph_function_and_variable_visibility): Set
+ visibility flags correctly in whole program mode.
+
2005-07-26 Steve Ellcey <sje@cup.hp.com>
PR rtl-optimization/22472
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 6ab04d4..7b126cc 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -1123,7 +1123,8 @@ cgraph_function_and_variable_visibility (void)
{
if (node->reachable
&& (DECL_COMDAT (node->decl)
- || (TREE_PUBLIC (node->decl) && !DECL_EXTERNAL (node->decl))))
+ || (!flag_whole_program
+ && TREE_PUBLIC (node->decl) && !DECL_EXTERNAL (node->decl))))
node->local.externally_visible = true;
if (!node->local.externally_visible && node->analyzed
&& !DECL_EXTERNAL (node->decl))
@@ -1139,6 +1140,7 @@ cgraph_function_and_variable_visibility (void)
for (vnode = cgraph_varpool_nodes_queue; vnode; vnode = vnode->next_needed)
{
if (vnode->needed
+ && !flag_whole_program
&& (DECL_COMDAT (vnode->decl) || TREE_PUBLIC (vnode->decl)))
vnode->externally_visible = 1;
if (!vnode->externally_visible)