summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7860c98)
when to PUBLIC is set.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154167
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-11-13 Jan Hubicka <jh@suse.cz>
+
+ * ipa.c (function_and_variable_visibility): Clear COMDAT on functions
+ when to PUBLIC is set.
+
2009-11-13 Jakub Jelinek <jakub@redhat.com>
PR middle-end/42029
2009-11-13 Jakub Jelinek <jakub@redhat.com>
PR middle-end/42029
for (node = cgraph_nodes; node; node = node->next)
{
for (node = cgraph_nodes; node; node = node->next)
{
+ /* C++ FE on lack of COMDAT support create local COMDAT functions
+ (that ought to be shared but can not due to object format
+ limitations). It is neccesary to keep the flag to make rest of C++ FE
+ happy. Clear the flag here to avoid confusion in middle-end. */
+ if (DECL_COMDAT (node->decl) && !TREE_PUBLIC (node->decl))
+ DECL_COMDAT (node->decl) = 0;
gcc_assert ((!DECL_WEAK (node->decl) && !DECL_COMDAT (node->decl))
|| TREE_PUBLIC (node->decl) || DECL_EXTERNAL (node->decl));
if (cgraph_externally_visible_p (node, whole_program))
gcc_assert ((!DECL_WEAK (node->decl) && !DECL_COMDAT (node->decl))
|| TREE_PUBLIC (node->decl) || DECL_EXTERNAL (node->decl));
if (cgraph_externally_visible_p (node, whole_program))