Hi,
this patch fixes a bug I apparently intoduced while updating the code for new 
alias API.
Instead of creating alias of emutls var it now creates alias of target var that 
leads
to ICE later (or a wrong code when ICE is worked around).

Bootstrapped/regtested x86_64-linux with emutls and comitted.

Index: ChangeLog
===================================================================
--- ChangeLog   (revision 187114)
+++ ChangeLog   (working copy)
@@ -1,5 +1,10 @@
 2012-05-03  Jan Hubicka  <j...@suse.cz>
 
+       PR middle-end/53093
+       * tree-emutls.c (new_emutls_decl): Fix handling of aliases.
+
+2012-05-03  Jan Hubicka  <j...@suse.cz>
+
        PR middle-end/53106
        * ipa.c (cgraph_remove_unreachable_nodes): Fix handling of clones.
 
Index: tree-emutls.c
===================================================================
--- tree-emutls.c       (revision 187011)
+++ tree-emutls.c       (working copy)
@@ -338,7 +338,7 @@ new_emutls_decl (tree decl, tree alias_o
   else 
     varpool_create_variable_alias (to,
                                   varpool_node_for_asm
-                                   (DECL_ASSEMBLER_NAME 
(alias_of))->symbol.decl);
+                                   (DECL_ASSEMBLER_NAME (DECL_VALUE_EXPR 
(alias_of)))->symbol.decl);
   return to;
 }
 

Reply via email to