aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-emutls.c
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2014-06-16 01:38:29 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2014-06-15 23:38:29 +0000
commit56363ffd48e81fd2bfbed9cf047809b45fc7c20f (patch)
tree997fbc019bd9db4f0a5a593250dbf13e6ebe406e /gcc/tree-emutls.c
parenta416c4c766df05b1e85dcee2fe7857e9a6e87b88 (diff)
downloadgcc-56363ffd48e81fd2bfbed9cf047809b45fc7c20f.zip
gcc-56363ffd48e81fd2bfbed9cf047809b45fc7c20f.tar.gz
gcc-56363ffd48e81fd2bfbed9cf047809b45fc7c20f.tar.bz2
c-common.c (handle_tls_model_attribute): Use set_decl_tls_model.
* c-family/c-common.c (handle_tls_model_attribute): Use set_decl_tls_model. * cgraph.h (struct varpool_node): Add tls_model. * tree.c (decl_tls_model, set_decl_tls_model): New functions. * tree.h (DECL_TLS_MODEL): Update. (DECL_THREAD_LOCAL_P): Check that variable is static. (decl_tls_model): Declare. (set_decl_tls_model): Declare. * tree-emutls.c (get_emutls_init_templ_addr): First build decl and then set symbol prorperties. (get_emutls_init_templ_addr): Cleanup. (new_emutls_decl): Update. * lto-cgraph.c (lto_output_varpool_node): Stream TLS model (lto_input_varpool_node): Likewise. * lto-streamer-out.c (hash_tree): Likewise. * tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do not stream DECL_TLS_MODEL. * tree-profile.c (init_ic_make_global_vars): Use set_decl_tls_model. * tree-core.h (tree_decl_with_vis): Remove tls_model; update comments. * c-parser.c (c_parser_omp_threadprivate): Likewise. * c-decl.c (merge_decls): Likewise. * decl.c (duplicate_decls): Use set_decl_tls_model. (grokdeclarator): Likewise. * semantics.c (finish_id_expression): Check TLS only for static variables. (finish_omp_threadprivate): Use decl_default_tls_model. * decl2.c (get_guard): Likewise. * call.c (make_temporary_var_for_ref_to_temp): Likewise. * gcc-interface/utils.c (process_attributes): Use set_decl_tls_model. * trans-common.c (build_common_decl): Use set_decl_tls_model. * trans-decl.c (gfc_finish_var_decl): Likewise. (get_proc_pointer_decl): Likewise. * lto.c (compare_tree_sccs_1): Do not compare DECL_TLS_MODEL. From-SVN: r211689
Diffstat (limited to 'gcc/tree-emutls.c')
-rw-r--r--gcc/tree-emutls.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index 5bb96ce..fe1e85d 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -250,10 +250,10 @@ get_emutls_init_templ_addr (tree decl)
DECL_WEAK (to) = DECL_WEAK (decl);
if (DECL_ONE_ONLY (decl))
{
- make_decl_one_only (to, DECL_ASSEMBLER_NAME (to));
TREE_STATIC (to) = TREE_STATIC (decl);
TREE_PUBLIC (to) = TREE_PUBLIC (decl);
DECL_VISIBILITY (to) = DECL_VISIBILITY (decl);
+ make_decl_one_only (to, DECL_ASSEMBLER_NAME (to));
}
else
TREE_STATIC (to) = 1;
@@ -263,9 +263,7 @@ get_emutls_init_templ_addr (tree decl)
DECL_INITIAL (decl) = NULL;
if (targetm.emutls.tmpl_section)
- {
- set_decl_section_name (to, targetm.emutls.tmpl_section);
- }
+ set_decl_section_name (to, targetm.emutls.tmpl_section);
else
set_decl_section_name (to, DECL_SECTION_NAME (decl));
@@ -292,7 +290,6 @@ new_emutls_decl (tree decl, tree alias_of)
SET_DECL_ASSEMBLER_NAME (to, DECL_NAME (to));
- DECL_TLS_MODEL (to) = TLS_MODEL_EMULATED;
DECL_ARTIFICIAL (to) = 1;
DECL_IGNORED_P (to) = 1;
TREE_READONLY (to) = 0;
@@ -314,6 +311,8 @@ new_emutls_decl (tree decl, tree alias_of)
if (DECL_ONE_ONLY (decl))
make_decl_one_only (to, DECL_ASSEMBLER_NAME (to));
+ set_decl_tls_model (to, TLS_MODEL_EMULATED);
+
/* If we're not allowed to change the proxy object's alignment,
pretend it has been set by the user. */
if (targetm.emutls.var_align_fixed)