This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/27339] [4.1 Regression] out-of-class definition of value template parameter with private type
- From: "mmitchel at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 May 2006 14:55:39 -0000
- Subject: [Bug c++/27339] [4.1 Regression] out-of-class definition of value template parameter with private type
- References: <bug-27339-12611@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from mmitchel at gcc dot gnu dot org 2006-05-16 14:55 -------
Subject: Bug 27339
Author: mmitchel
Date: Tue May 16 14:54:55 2006
New Revision: 113825
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113825
Log:
PR c++/27339
* cp-tree.h (perform_access_checks): New function.
* semantics.c (perform_access_checks): New function.
(perform_deferred_access_checks): Use it.
* parser.c (cp_parser_simple_declaration): Adjust call to
cp_parser_init_declarator.
(cp_parser_type_parameter): Do not defer checks in default
arguments.
(cp_parser_explicit_specialization): Adjust call to
cp_parser_single_declaration.
(cp_parser_init_declarator): Perform template-parameter access
checks.
(cp_parser_parameter_declaration): Do not defer checks for
template parameter default arguments.
(cp_parser_template_declaration_after_export): Gather access
checks for template parameters, and pass them to
cp_parser_single_declaration.
(cp_parser_template_parameter_access_checks): New function.
(cp_parser_single_declaration): Add checks parameter.
PR c++/27339
* g++.dg/parser/access8.C: Adjust error marker.
* g++.dg/template/access17.C: New test.
* g++.dg/template/access18.C: Likewise.
Added:
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/access17.C
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/template/access18.C
Modified:
branches/gcc-4_1-branch/gcc/cp/ChangeLog
branches/gcc-4_1-branch/gcc/cp/cp-tree.h
branches/gcc-4_1-branch/gcc/cp/parser.c
branches/gcc-4_1-branch/gcc/cp/semantics.c
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/gcc/testsuite/g++.dg/parse/access8.C
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27339