From: Kriang Lerdsuwanakij Date: Thu, 26 Jul 2001 12:48:01 +0000 (+0000) Subject: pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and tsubst_expr for default... X-Git-Tag: prereleases/libstdc++-3.0.95~3028 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db3ef87b8a1858f77998a9e8a5275cc5755350d7;p=thirdparty%2Fgcc.git pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and tsubst_expr for default template arguments. 2001-07-22 Kriang Lerdsuwanakij * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and tsubst_expr for default template arguments. 2001-07-22 Kriang Lerdsuwanakij * g++.old-deja/g++.pt/defarg14.C: New test. From-SVN: r44396 --- diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index dd1be64de8e7..756924940da8 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2001-07-26 Kriang Lerdsuwanakij + + * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and + tsubst_expr for default template arguments. + 2001-07-26 Nathan Sidwell * spew.c (yylex): Only copy the token's lineno, if it is diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c index d09ce8f70ca0..1f40089a4b59 100644 --- a/gcc/cp/pt.c +++ b/gcc/cp/pt.c @@ -5377,8 +5377,9 @@ tsubst_template_parms (parms, args, complain) TREE_VALUE (TREE_VEC_ELT (TREE_VALUE (parms), i)); TREE_VEC_ELT (new_vec, i) - = build_tree_list (tsubst (default_value, args, complain, - NULL_TREE), + = build_tree_list (maybe_fold_nontype_arg ( + tsubst_expr (default_value, args, complain, + NULL_TREE)), tsubst (parm_decl, args, complain, NULL_TREE)); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f2354d4a76e6..5b9ab08a692e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-07-26 Kriang Lerdsuwanakij + + * g++.old-deja/g++.pt/defarg14.C: New test. + 2001-07-26 Nathan Sidwell * g++.old-deja/g++.other/lineno5.C: New test. diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg14.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg14.C new file mode 100644 index 000000000000..7ae494179133 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.pt/defarg14.C @@ -0,0 +1,18 @@ +// Build don't link: + +// Origin: Larry Evans + +// Bug: enum in default template arguments are not properly handled. + +enum Enum0 { E0, E1, E2 }; +enum Enum1 { E3=E2+1, E4=E3+1 }; + +template class OutTmpl +{ + public: + template class InTmpl + { + }; +}; + +OutTmpl m;