aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2005-07-27 06:45:28 +0000
committerJan Hubicka <jh@suse.cz>2005-07-27 06:45:28 +0000
commit7477b0dfe69b672661edb4e4c12faf2fede1220a (patch)
treea6edf89fff04535770557bb775c9a8946fe11b1a
parent55c6cd7f2a089b0f9c85309cc1e2097d98ab4a27 (diff)
* cgraphunit.c (cgraph_function_and_variable_visibility): Set
visibility flags correctly in whole program mode. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@102415 138bc75d-0d04-0410-961f-82ee72b054a4
-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 06b638d6719..8ab2a1a1f5d 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 6ab04d4d850..7b126cc6f89 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)