diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-12 08:21:53 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2016-01-12 08:21:53 +0000 |
commit | 1d10d64cc2e5cea94789495777c60468ad500a17 (patch) | |
tree | 8cc7d55e8ab77206f6039b302671e3002677fab7 /gcc/cp/pt.c | |
parent | da024748bed3deeb511d0946613e309ee525061f (diff) | |
download | gcc-1d10d64cc2e5cea94789495777c60468ad500a17.tar.gz |
PR c++/66808
PR c++/69000
* pt.c (tsubst_decl): If not local_p, clear DECL_TEMPLATE_INFO.
* g++.dg/tls/pr66808.C: New test.
* g++.dg/tls/pr69000.C: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232259 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cp/pt.c')
-rw-r--r-- | gcc/cp/pt.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index ad5099f94bc..edec774a0c9 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -12292,8 +12292,13 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain) SET_DECL_IMPLICIT_INSTANTIATION (r); register_specialization (r, gen_tmpl, argvec, false, hash); } - else if (!cp_unevaluated_operand) - register_local_specialization (r, t); + else + { + if (DECL_LANG_SPECIFIC (r)) + DECL_TEMPLATE_INFO (r) = NULL_TREE; + if (!cp_unevaluated_operand) + register_local_specialization (r, t); + } DECL_CHAIN (r) = NULL_TREE; |