[Bug tree-optimization/64330] [5 Regression] IPA-ICF merges const exported vars that could be addressable in other TUs
marxin at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 17 18:15:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64330
--- Comment #8 from Martin Liška <marxin at gcc dot gnu.org> ---
Thank you for the missing externally visible attribute.
I've been testing following patch:
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index b193200..0685019 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -1131,8 +1131,12 @@ sem_variable::parse (varpool_node *node, bitmap_obstack
*stack)
tree decl = node->decl;
bool readonly = TYPE_P (decl) ? TYPE_READONLY (decl) : TREE_READONLY (decl);
- bool can_handle = readonly && (DECL_VIRTUAL_P (decl)
- || !TREE_ADDRESSABLE (decl));
+ if (!readonly)
+ return NULL;
+
+ bool can_handle = DECL_VIRTUAL_P (decl)
+ || flag_merge_constants >= 2
+ || (!TREE_ADDRESSABLE (decl) && !node->externally_visible);
if (!can_handle)
return NULL;
As soon as tests finish, I will send it to ML.
Martin
More information about the Gcc-bugs
mailing list