aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>1998-03-20 18:11:26 +0000
committerJason Merrill <jason@gcc.gnu.org>1998-03-20 13:11:26 -0500
commit362badb092f963572a3be89c74bc814162b024bf (patch)
tree94b64fe0f99ddb0d3ecbc900981f538d85919e36 /gcc
parent990249560440183d0dfac65faf64be91fdbeed03 (diff)
downloadgcc-362badb092f963572a3be89c74bc814162b024bf.zip
gcc-362badb092f963572a3be89c74bc814162b024bf.tar.gz
gcc-362badb092f963572a3be89c74bc814162b024bf.tar.bz2
* pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify.
From-SVN: r18735
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog4
-rw-r--r--gcc/cp/pt.c23
2 files changed, 13 insertions, 14 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index f8862c0..dd33cd6 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,7 @@
+Fri Mar 20 18:07:39 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
+
+ * pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify.
+
Fri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com>
* decl.c (make_implicit_typename): Rewrite removed code.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index d372e11..3454b6e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -3689,20 +3689,7 @@ tsubst (t, args, in_decl)
{
case TEMPLATE_TYPE_PARM:
case TEMPLATE_TEMPLATE_PARM:
-
- if (TREE_CODE (t) == TEMPLATE_TEMPLATE_PARM
- && CLASSTYPE_TEMPLATE_INFO (t))
- {
- tree argvec = tsubst (CLASSTYPE_TI_ARGS (t),
- args, in_decl);
- r = lookup_template_class (TYPE_NAME (t), argvec, in_decl,
- DECL_CONTEXT (TYPE_NAME (t)));
- r = cp_build_type_variant (r, TYPE_READONLY (t),
- TYPE_VOLATILE (t));
- }
- else
- r = copy_node (t);
-
+ r = copy_node (t);
TEMPLATE_TYPE_PARM_INDEX (r)
= reduce_template_parm_level (TEMPLATE_TYPE_PARM_INDEX (t),
r, levels);
@@ -3710,6 +3697,14 @@ tsubst (t, args, in_decl)
TYPE_MAIN_VARIANT (r) = r;
TYPE_POINTER_TO (r) = NULL_TREE;
TYPE_REFERENCE_TO (r) = NULL_TREE;
+
+ if (TREE_CODE (t) == TEMPLATE_TEMPLATE_PARM
+ && CLASSTYPE_TEMPLATE_INFO (t))
+ {
+ tree argvec = tsubst (CLASSTYPE_TI_ARGS (t), args, in_decl);
+ CLASSTYPE_TEMPLATE_INFO (r)
+ = perm_tree_cons (TYPE_NAME (t), argvec, NULL_TREE);
+ }
break;
case TEMPLATE_PARM_INDEX: