re PR middle-end/46510 (r166812 breaks bootstrap on x86_64-apple-darwin10)
authorJan Hubicka <jh@suse.cz>
Sun, 21 Nov 2010 23:02:15 +0000 (00:02 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Sun, 21 Nov 2010 23:02:15 +0000 (23:02 +0000)
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

gcc/ChangeLog
gcc/tree-emutls.c

index 70b802755b52ba9d328d0235f442e9cd71e08ae2..bd5fd5be53dc43341970c341d696c7c26b31fb3c 100644 (file)
@@ -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
index 2a1ec068a8585b38a7a89ebf865dc96afa083b30..899888dfb10c523a6d63d689fee815ee4b2d0fe9 100644 (file)
@@ -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;
 }