diff options
author | Dodji Seketeli <dodji@redhat.com> | 2009-05-26 10:35:16 +0000 |
---|---|---|
committer | Dodji Seketeli <dodji@gcc.gnu.org> | 2009-05-26 12:35:16 +0200 |
commit | 2eb25c98ab88d63e27089a920f3fbd6fc485cd9e (patch) | |
tree | 3d65d44a42717c7f7d4a2537e6e32c193c7d5fae /gcc/lambda-code.c | |
parent | 52c3075d2b966a735dd2052437ddc00ce335aa85 (diff) | |
download | gcc-2eb25c98ab88d63e27089a920f3fbd6fc485cd9e.zip gcc-2eb25c98ab88d63e27089a920f3fbd6fc485cd9e.tar.gz gcc-2eb25c98ab88d63e27089a920f3fbd6fc485cd9e.tar.bz2 |
re PR c++/40007 (specialization causes access problem in primary template)
Fix PR c++/40007
gcc/cp/ChangeLog:
PR c++/40007
* cp-tree.h (MEMBER_TYPES_NEEDING_ACCESS_CHECK): Remove this accessor.
(TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): New accessor.
(get_types_needing_access_check): Declare new entry point.
* pt.c (append_type_to_template_for_access_check_1,
get_types_needing_access_check): New functions.
(perform_typedefs_access_check): Accept FUNCTION_DECLs and
RECORD_TYPEs rather than TEMPLATE_DECLs. Use the new
get_types_needing_access_check, no more
MEMBER_TYPES_NEEDING_ACCESS_CHECK.
(instantiate_class_template): Set input_location to the source
location of the most specialized template definition.
Perform access check using the RECORD_TYPE of the template, not its
associated most generic TEMPLATE_DECL.
(append_type_to_template_for_access_check): Augment function
comments. Use the new get_types_needing_access_check, not
MEMBER_TYPE_NEEDING_ACCESS_CHECK. Use the new
append_type_to_template_for_access_check_1 subroutine.
gcc/testsuite/ChangeLog:
PR c++/40007
* g++.dg/template/typedef18.C: New test.
* g++.dg/template/typedef19.C: Likewise.
* g++.dg/template/typedef20.C: Likewise.
* g++.dg/template/access11.C: Adjust.
From-SVN: r147866
Diffstat (limited to 'gcc/lambda-code.c')
0 files changed, 0 insertions, 0 deletions