diff options
author | Jan Hubicka <jh@suse.cz> | 2010-11-22 00:02:15 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2010-11-21 23:02:15 +0000 |
commit | 1c799342060318ce43ccecfb54e74212338aa6f4 (patch) | |
tree | f3c758622a05bf79b5f0011c4175e3603ea18de3 | |
parent | 091f0901de696066fc178f99d54a638331312433 (diff) | |
download | gcc-1c799342060318ce43ccecfb54e74212338aa6f4.zip gcc-1c799342060318ce43ccecfb54e74212338aa6f4.tar.gz gcc-1c799342060318ce43ccecfb54e74212338aa6f4.tar.bz2 |
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 <dominiq@lps.ens.ft>
From-SVN: r167014
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-emutls.c | 14 |
2 files changed, 19 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 70b8027..bd5fd5b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c index 2a1ec06..899888d 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; } |