aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
diff options
context:
space:
mode:
authorJason Merrill <jason@yorick.cygnus.com>1996-08-13 15:39:22 +0000
committerMike Stump <mrs@gcc.gnu.org>1996-08-13 15:39:22 +0000
commit73aad9b9ff694fcaf423834d7e2c47046cac34cd (patch)
treee2b752085bc40e641e8888cd283761f6cb564dc0 /gcc/cp/decl.c
parentc8c2dcdce1e0144357f43f9d3c015dfbab58957a (diff)
downloadgcc-73aad9b9ff694fcaf423834d7e2c47046cac34cd.zip
gcc-73aad9b9ff694fcaf423834d7e2c47046cac34cd.tar.gz
gcc-73aad9b9ff694fcaf423834d7e2c47046cac34cd.tar.bz2
87th Cygnus<->FSF quick merge
From-SVN: r12630
Diffstat (limited to 'gcc/cp/decl.c')
-rw-r--r--gcc/cp/decl.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index 98d3f14..3486634 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -2869,7 +2869,6 @@ duplicate_decls (newdecl, olddecl)
if (TREE_CODE (newdecl) == TEMPLATE_DECL)
{
- DECL_TEMPLATE_MEMBERS (newdecl) = DECL_TEMPLATE_MEMBERS (olddecl);
DECL_TEMPLATE_INSTANTIATIONS (newdecl)
= DECL_TEMPLATE_INSTANTIATIONS (olddecl);
if (DECL_CHAIN (newdecl) == NULL_TREE)
@@ -5646,7 +5645,11 @@ shadow_tag (declspecs)
{
if (CLASSTYPE_IMPLICIT_INSTANTIATION (value)
&& TYPE_SIZE (value) == NULL_TREE)
- SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (value);
+ {
+ SET_CLASSTYPE_TEMPLATE_SPECIALIZATION (value);
+ if (current_template_parms)
+ push_template_decl (TYPE_MAIN_DECL (value));
+ }
else if (CLASSTYPE_TEMPLATE_INSTANTIATION (value))
cp_error ("specialization after instantiation of `%T'", value);
}