aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2009-11-12 07:50:19 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2009-11-12 06:50:19 +0000
commitfcc993f6f58f66f6d34bf3de8da27bf9f34680c7 (patch)
tree571de9eb29a8c6efe78c80aa322723a6cb399710 /gcc/ipa.c
parent0a8fff5778dd361e64a01c1e2567f7d06d08c275 (diff)
downloadgcc-fcc993f6f58f66f6d34bf3de8da27bf9f34680c7.zip
gcc-fcc993f6f58f66f6d34bf3de8da27bf9f34680c7.tar.gz
gcc-fcc993f6f58f66f6d34bf3de8da27bf9f34680c7.tar.bz2
decl2.c (constrain_visibility): Clear WEAK and COMMON flags.
* decl2.c (constrain_visibility): Clear WEAK and COMMON flags. * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON imply PUBLIC || EXTERNAL. From-SVN: r154115
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r--gcc/ipa.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c
index 1e5f22c..4297ea2 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -292,6 +292,7 @@ function_and_variable_visibility (bool whole_program)
for (node = cgraph_nodes; node; node = node->next)
{
+ gcc_assert (!DECL_WEAK (node->decl) || TREE_PUBLIC (node->decl) || DECL_EXTERNAL (node->decl));
if (cgraph_externally_visible_p (node, whole_program))
{
gcc_assert (!node->global.inlined_to);
@@ -316,6 +317,8 @@ function_and_variable_visibility (bool whole_program)
{
if (!vnode->finalized)
continue;
+ gcc_assert ((!DECL_WEAK (vnode->decl) || DECL_COMMON (vnode->decl))
+ || TREE_PUBLIC (vnode->decl) || DECL_EXTERNAL (node->decl));
if (vnode->needed
&& (DECL_COMDAT (vnode->decl) || TREE_PUBLIC (vnode->decl))
&& (!whole_program