This is the mail archive of the
gcc-prs@gcc.gnu.org
mailing list for the GCC project.
c++/9978
- From: nathan at gcc dot gnu dot org
- To: nathan at gcc dot gnu dot org
- Cc: gcc-prs at gcc dot gnu dot org,
- Date: 22 Mar 2003 15:36:00 -0000
- Subject: c++/9978
- Reply-to: nathan at gcc dot gnu dot org
The following reply was made to PR c++/9978; it has been noted by GNATS.
From: nathan at gcc dot gnu dot org
To: gcc-gnats at gcc dot gnu dot org
Cc:
Subject: c++/9978
Date: 22 Mar 2003 15:34:41 -0000
CVSROOT: /cvs/gcc
Module name: gcc
Changes by: nathan at gcc dot gnu dot org 2003-03-22 15:34:41
Modified files:
gcc/cp : ChangeLog call.c class.c cp-tree.h decl.c pt.c
gcc/testsuite : ChangeLog
gcc/testsuite/g++.dg/ext: vlm1.C
Added files:
gcc/testsuite/g++.dg/ext: vla2.C
gcc/testsuite/g++.dg/template: arg1.C arg2.C
Log message:
cp:
PR c++/9978, c++/9708
* cp-tree.h (instantiate_template): Add tsubst_flags parameter.
* call.c (add_template_candidate_real): Adjust
instantiate_template call.
* class.c (resolve_address_of_overloaded_function): Likewise.
* decl.c (build_enumerator): Set TREE_CONSTANT.
* pt.c (check_instantiated_args): New.
(push_inline_template_parms_recursive): Set TREE_CONSTANT,
TREE_READONLY.
(build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
(reduce_template_parm_level): Likewise.
(process_template_parm): Likewise.
(check_explicit_specialization): Adjust instantiate_template call.
(convert_template_argument): Don't check non-type argument here.
(lookup_template_class): Check them here.
(tsubst_friend_function): Adjust instantiate_template call.
(instantiate_template): Add tsubst_flags parameter, use it. Check
instantiated args.
testsuite:
PR c++/9978, c++/9708
* g++.dg/ext/vlm1.C: Adjust expected error.
* g++.dg/ext/vla2.C: New test.
* g++.dg/template/arg1.C: New test.
* g++.dg/template/arg2.C: New test.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/ChangeLog.diff?cvsroot=gcc&r1=1.3290&r2=1.3291
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/call.c.diff?cvsroot=gcc&r1=1.371&r2=1.372
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/class.c.diff?cvsroot=gcc&r1=1.527&r2=1.528
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/cp-tree.h.diff?cvsroot=gcc&r1=1.828&r2=1.829
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/decl.c.diff?cvsroot=gcc&r1=1.1025&r2=1.1026
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cp/pt.c.diff?cvsroot=gcc&r1=1.672&r2=1.673
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.2523&r2=1.2524
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/vla2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/ext/vlm1.C.diff?cvsroot=gcc&r1=1.1&r2=1.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/arg1.C.diff?cvsroot=gcc&r1=NONE&r2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/g++.dg/template/arg2.C.diff?cvsroot=gcc&r1=NONE&r2=1.1