]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/semantics.c
re PR c++/28588 (static private function)
authorMark Mitchell <mark@codesourcery.com>
Sat, 26 Aug 2006 16:23:33 +0000 (16:23 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Sat, 26 Aug 2006 16:23:33 +0000 (16:23 +0000)
commiteff3a27644c419c425e0e1a1585abefff3695ca5
tree0365ed4c2d70b546d5308383eda316cb067b2b23
parentfa1ff4eb8cb4ec1474d6ab338b6840a2140b588d
re PR c++/28588 (static private function)

PR c++/28588
* class.c (resolve_address_of_overloaded_function): Add
access_path parameter.  Perform access checks.
(instantiate_type): Adjust call to
resolve_address_of_overloaded_function.  Remove unnecessary code.
* tree.c (is_overloaded_fn): Document.  Return 2 when there are
acutally multiple functions.
(really_overloaded_fn): Use is_overloaded_fn.
* mangle.c (write_expression): Handle BASELINKs.
* cp-tree.h (really_overloaded_fn): Return bool.
(baselink_for_fns): Declare.
* search.c (lookup_member): Check access for single static
functions here.
* pt.c (convert_nontype_argument_function): Handle BASELINKs.
(tsubst_copy_and_build): Generate BASELINKs for template-ids.
* semantics.c (finish_call_expr): Use baselink_for_fns.
(baselink_for_fns): New function.
(finish_id_expression): Use it.
* parser.c (cp_parser_template_argument): Don't strip BASELINKs.
PR c++/28595
* pt.c (tsubst): Issue errors about attempts to create VLAs at
template-instantiation time.
PR c++/28588
* g++.dg/inherit/access6.C: New test.
* g++.dg/inherit/access7.C: Likewise.
PR c++/28595
* g++.dg/template/array15.C: New test.
* g++.dg/template/crash2.C: Tweak error markers.

From-SVN: r116468
14 files changed:
gcc/cp/ChangeLog
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/mangle.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/search.c
gcc/cp/semantics.c
gcc/cp/tree.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/inherit/access6.C [new file with mode: 0644]
gcc/testsuite/g++.dg/inherit/access7.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/array15.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/crash2.C