diff options
author | Jason Merrill <jason@redhat.com> | 2015-05-20 17:32:52 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2015-05-20 17:32:52 -0400 |
commit | 226a93b7b7e464dd4c030b75e1d118f0e382cde1 (patch) | |
tree | 20b38d06dc8739977b90e964eb4a43e109dfddf4 /gcc | |
parent | 1210105350eff9956347a4c0a3ae09d0514b81d0 (diff) | |
download | gcc-226a93b7b7e464dd4c030b75e1d118f0e382cde1.zip gcc-226a93b7b7e464dd4c030b75e1d118f0e382cde1.tar.gz gcc-226a93b7b7e464dd4c030b75e1d118f0e382cde1.tar.bz2 |
pt.c (tsubst_decl): SET_DECL_IMPLICIT_INSTANTIATION before register_specialization.
* pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION
before register_specialization.
From-SVN: r223461
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cp/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/cp/pt.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/cpp1y/var-templ27.C | 9 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 320023a..b4c60b6 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,8 @@ 2015-05-20 Jason Merrill <jason@redhat.com> + * pt.c (tsubst_decl) [VAR_DECL]: SET_DECL_IMPLICIT_INSTANTIATION + before register_specialization. + * decl.c (grok_op_properties): Don't complain about size_t placement delete here. * call.c (second_parm_is_size_t): Split out from... diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index 60f3958..7555114 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -11407,9 +11407,9 @@ tsubst_decl (tree t, tree args, tsubst_flags_t complain) processing here. */ DECL_EXTERNAL (r) = 1; - register_specialization (r, gen_tmpl, argvec, false, hash); DECL_TEMPLATE_INFO (r) = build_template_info (tmpl, argvec); SET_DECL_IMPLICIT_INSTANTIATION (r); + register_specialization (r, gen_tmpl, argvec, false, hash); } else if (!cp_unevaluated_operand) register_local_specialization (r, t); diff --git a/gcc/testsuite/g++.dg/cpp1y/var-templ27.C b/gcc/testsuite/g++.dg/cpp1y/var-templ27.C new file mode 100644 index 0000000..da06b012 --- /dev/null +++ b/gcc/testsuite/g++.dg/cpp1y/var-templ27.C @@ -0,0 +1,9 @@ +// { dg-do compile { target c++14 } } + +namespace A +{ + template <class T> int I = 0; + template <class T> int I<T*> = 42; +} + +int i = A::I<void*>; |