aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Mitchell <mmitchell@usa.net>1997-12-18 19:26:14 +0000
committerJason Merrill <jason@gcc.gnu.org>1997-12-18 14:26:14 -0500
commit6ba4439c3b168c79fb4a9eed9e6491f39752b57d (patch)
tree711dc53420aab37361774850bf983dffb281e05d
parent337e2b6923fac20657d6ede9881439da3308c236 (diff)
downloadgcc-6ba4439c3b168c79fb4a9eed9e6491f39752b57d.zip
gcc-6ba4439c3b168c79fb4a9eed9e6491f39752b57d.tar.gz
gcc-6ba4439c3b168c79fb4a9eed9e6491f39752b57d.tar.bz2
pt.c (coerce_template_parms): Make sure to digest_init if possible.
* pt.c (coerce_template_parms): Make sure to digest_init if possible. From-SVN: r17138
-rw-r--r--gcc/cp/ChangeLog3
-rw-r--r--gcc/cp/pt.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 18e77ea..8899897 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,5 +1,8 @@
Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
+ * pt.c (coerce_template_parms): Make sure to digest_init if
+ possible.
+
* decl.c (duplicate_decls): Make the newdecl virtual if the
olddecl was, just as is done with other attributes of olddecl.
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index c1cfa92..9476d12 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -1079,7 +1079,10 @@ coerce_template_parms (parms, arglist, in_decl)
if (processing_template_decl)
val = maybe_fold_nontype_arg (arg);
else
- val = digest_init (t, arg, (tree *) 0);
+ val = arg;
+
+ if (!uses_template_parms (val) && !uses_template_parms (t))
+ val = digest_init (t, val, (tree *) 0);
if (val == error_mark_node
|| (processing_template_decl && uses_template_parms (val)))