===================================================================
@@ -1,3 +1,10 @@
+2010-11-21 Jan Hubicka <jh@suse.cz>
+ Dominique d'Humieres <dominiq@lps.ens.ft>
+
+ PR target/46510
+ * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not
+ finalize external decls.
+
2010-11-21 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR target/9468
===================================================================
@@ -257,7 +257,12 @@ get_emutls_init_templ_addr (tree decl)
targetm.emutls.tmpl_section);
}
- varpool_finalize_decl (to);
+ /* Create varpool node for the new variable and finalize it if it is
+ not external one. */
+ if (DECL_EXTERNAL (to))
+ varpool_node (to);
+ else
+ varpool_finalize_decl (to);
return build_fold_addr_expr (to);
}
@@ -324,7 +329,12 @@ new_emutls_decl (tree decl)
record_references_in_initializer (to, false);
}
- varpool_finalize_decl (to);
+ /* Create varpool node for the new variable and finalize it if it is
+ not external one. */
+ if (DECL_EXTERNAL (to))
+ varpool_node (to);
+ else
+ varpool_finalize_decl (to);
return to;
}