From 1c799342060318ce43ccecfb54e74212338aa6f4 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Mon, 22 Nov 2010 00:02:15 +0100 Subject: [PATCH] re PR middle-end/46510 (r166812 breaks bootstrap on x86_64-apple-darwin10) PR target/46510 * tree-emutls.c (get_emutls_init_templ_addr, new_emutls_decl): Do not finalize external decls. Co-Authored-By: Dominique d'Humieres From-SVN: r167014 --- gcc/ChangeLog | 7 +++++++ gcc/tree-emutls.c | 14 ++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 70b802755b5..bd5fd5be53d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-11-21 Jan Hubicka + Dominique d'Humieres + + 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 PR target/9468 diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c index 2a1ec068a85..899888dfb10 100644 --- a/gcc/tree-emutls.c +++ b/gcc/tree-emutls.c @@ -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; } -- 2.30.2