From db3ef87b8a1858f77998a9e8a5275cc5755350d7 Mon Sep 17 00:00:00 2001 From: Kriang Lerdsuwanakij Date: Thu, 26 Jul 2001 12:48:01 +0000 Subject: [PATCH] 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 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/pt.c | 5 +++-- gcc/testsuite/ChangeLog | 4 ++++ gcc/testsuite/g++.old-deja/g++.pt/defarg14.C | 18 ++++++++++++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.old-deja/g++.pt/defarg14.C 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; -- 2.47.2