aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-11-22 00:02:15 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2010-11-21 23:02:15 +0000
commit1c799342060318ce43ccecfb54e74212338aa6f4 (patch)
treef3c758622a05bf79b5f0011c4175e3603ea18de3
parent091f0901de696066fc178f99d54a638331312433 (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/tree-emutls.c14
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;
}