aboutsummaryrefslogtreecommitdiff
path: root/gcc/cgraphunit.c
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 /gcc/cgraphunit.c
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
Diffstat (limited to 'gcc/cgraphunit.c')
-rw-r--r--gcc/cgraphunit.c4
1 files changed, 3 insertions, 1 deletions
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)