commit e0343cda07dc6b8139eeb7c3a5f25891d48a6300
Author: Jason Merrill <jason@redhat.com>
Date: Fri Jan 31 10:54:49 2014 -0500
PR c++/55800
* decl2.c (get_tls_init_fn): Copy DECL_EXTERNAL from the variable.
@@ -2949,7 +2949,7 @@ get_tls_init_fn (tree var)
TREE_PUBLIC (fn) = TREE_PUBLIC (var);
DECL_ARTIFICIAL (fn) = true;
DECL_COMDAT (fn) = DECL_COMDAT (var);
- DECL_EXTERNAL (fn) = true;
+ DECL_EXTERNAL (fn) = DECL_EXTERNAL (var);
if (DECL_ONE_ONLY (var))
make_decl_one_only (fn, cxx_comdat_group (fn));
if (TREE_PUBLIC (var))
new file mode 100644
@@ -0,0 +1,11 @@
+// PR c++/55800
+// { dg-options "-std=c++11" }
+// { dg-require-alias "" }
+// { dg-final { scan-assembler "_ZTH12foo_instance" { target tls_native } } }
+
+struct foo
+{
+ foo();
+};
+
+thread_local foo foo_instance;