This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
r192209 - in /trunk/gcc: c-family/ChangeLog c-f...
- From: jason at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: Mon, 08 Oct 2012 14:45:14 -0000
- Subject: r192209 - in /trunk/gcc: c-family/ChangeLog c-f...
Author: jason
Date: Mon Oct 8 14:45:12 2012
New Revision: 192209
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192209
Log:
Partial implementation of C++11 thread_local.
c-family/
* c-common.c (c_common_reswords): Add thread_local.
cp/
* decl.c (cp_finish_decl): Remove errors about non-trivial
initialization and destruction of TLS variables.
(register_dtor_fn): Add sorry about TLS variables.
(expand_static_init): Add sorry about non-local TLS variables,
or error with __thread.
Don't emit thread-safety guards for local TLS variables.
(grokdeclarator): thread_local in a function implies static.
* decl.h: Adjust prototype.
* decl2.c (get_guard): Copy DECL_TLS_MODEL.
* parser.c (cp_parser_set_storage_class, cp_parser_set_decl_spec_type)
(set_and_check_decl_spec_loc): Take the token rather than the location.
Distinguish between __thread and thread_local.
(cp_parser_set_storage_class): Don't complain about thread_local before
extern/static.
(token_is__thread): New.
* call.c (make_temporary_var_for_ref_to_temp): Handle TLS.
* cp-tree.h (DECL_GNU_TLS_P): New.
(cp_decl_specifier_seq): Add gnu_thread_keyword_p.
Added:
trunk/gcc/testsuite/g++.dg/tls/thread_local1.C
trunk/gcc/testsuite/g++.dg/tls/thread_local2.C
trunk/gcc/testsuite/g++.dg/tls/thread_local7.C
Modified:
trunk/gcc/c-family/ChangeLog
trunk/gcc/c-family/c-common.c
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/decl.h
trunk/gcc/cp/decl2.c
trunk/gcc/cp/parser.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/tls/init-2.C