DR 1170
commiteb833cbe81af8557958673c11a44cc629b79c588
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Jul 2012 01:36:50 +0000 (19 01:36 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 19 Jul 2012 01:36:50 +0000 (19 01:36 +0000)
treed39c6d48e17f0d85751becc5f496f94737ead16b
parentd70a13f878ee94b5e3b70307821fca3cd8c855e4
DR 1170
PR c++/51213
* semantics.c (perform_access_checks): Add complain parm, return bool.
(perform_deferred_access_checks): Likewise.
(perform_or_defer_access_check): Likewise.
(speculative_access_check): Remove.
* call.c (enforce_access): Add complain parm, return bool.
* decl.c, friend.c, class.c, init.c, parser.c: Adjust callers.
* search.c: Adjust callers.
* cp-tree.h (TINFO_RECHECK_ACCESS_P): New macro.
(FNDECL_RECHECK_ACCESS_P): New macro.
* method.c (synthesized_method_walk): Stop deferring access checks.
* pt.c (recheck_decl_substitution): New.
(instantiate_template_1): Set and check FNDECL_RECHECK_ACCESS_P.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@189639 138bc75d-0d04-0410-961f-82ee72b054a4
20 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/friend.c
gcc/cp/init.c
gcc/cp/method.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/search.c
gcc/cp/semantics.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/cpp0x/sfinae37.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/access23.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/access7.C
gcc/testsuite/g++.dg/template/sfinae10.C
gcc/testsuite/g++.dg/template/sfinae6_neg.C
libstdc++-v3/ChangeLog
libstdc++-v3/testsuite/20_util/pair/noncopyable.cc [new file with mode: 0644]