[Bug ipa/61548] [5 Regression] FAIL: gcc.dg/tls/alias-1.c
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sun Feb 8 22:52:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61548
--- Comment #27 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Does the following patch fix the problem?
Index: tree-emutls.c
===================================================================
--- tree-emutls.c (revision 220509)
+++ tree-emutls.c (working copy)
@@ -753,17 +753,19 @@ ipa_lower_emutls (void)
cgraph_node *func;
bool any_aliases = false;
tree ctor_body = NULL;
-
+ hash_set <varpool_node *> visited;
auto_vec <varpool_node *> tls_vars;
/* Examine all global variables for TLS variables. */
FOR_EACH_VARIABLE (var)
- if (DECL_THREAD_LOCAL_P (var->decl))
+ if (DECL_THREAD_LOCAL_P (var->decl)
+ && !visited.add (var))
{
gcc_checking_assert (TREE_STATIC (var->decl)
|| DECL_EXTERNAL (var->decl));
tls_vars.safe_push (var);
- if (var->alias && var->definition)
+ if (var->alias && var->definition
+ && !visited.add (var->ultimate_alias_target ()))
tls_vars.safe_push (var->ultimate_alias_target ());
}
More information about the Gcc-bugs
mailing list