]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cp/pt.c
cp-tree.h (flag_access_control): Declare.
authorMark Mitchell <mark@markmitchell.com>
Tue, 9 Mar 1999 23:02:42 +0000 (23:02 +0000)
committerMark Mitchell <mmitchel@gcc.gnu.org>
Tue, 9 Mar 1999 23:02:42 +0000 (23:02 +0000)
commitd6479fe772c6ab3191be8268ac658f309675bc28
treeb19fb389204ade44a8b25a95fc03743a45c8d0e2
parent8f96c7ac27203b9c74a1d244c52ce242b65e8681
cp-tree.h (flag_access_control): Declare.

* cp-tree.h (flag_access_control): Declare.
(TREE_VIA_PPUBLIC): Document.
(DECL_NONSTATIC_MEMBER_P): New macro.
(enforce_access): Return an indication of whether or not access
was permitted.
(build_self_reference): Change prototype.
(compute_access): Replace with ...
(accessible_p): New function.
(dfs_walk): Change prototype.
(dfs_unmark): Likewise.
(markedp): Likewise.
* call.c (enforce_access): Use accessible_p.
* class.c (build_self_reference): Insert the declaration into the
list of members for this type, and make it public.
* decl.c (xref_basetypes): Avoid ill-timed recursion.
* init.c (build_offset_ref): Use lookup_member, not three separate
name-lookups.  Call enforce_access rather than checking for
illegal accesses here.
(resolve_offset_ref): Likewise.
* lex.c (do_identifier): Likewise.
* method.c (hack_identifier): Likewise.
* parse.y (self_reference): Remove.
(opt_component_decl_list): Don't use it.
* parse.c: Regenerated.
* pt.c (print_candidates): Generalize to handle lists of
overloaded functions.
(instantiate_class_template): Don't rely on TREE_VIA_PRIVATE; it's
not set.
(get_template_base): Use new calling convention for dfs_walk.
* search.c: Include varray.h.  Add prototypes.
(dfs_walk): Accept a data pointer to pass to the work functions.
All callers changed.  All work functions changed.
(breadth_first_search): Rename to bfs_walk, and make consistent
with dfs_walk.
(dfs_walk_real): New function.
(canonical_binfo): New function.
(context_for_name_lookup): Likewise.
(shared_marked_p): Likewise.
(shared_unmarked_p): Likewise.
(lokup_field_queue_p): Likewise.
(lookup_field_r): Generalize to handle both functions and fields.
(lookup_field): Just call lookup_member.
(lookup_fnfields): Likewise.
(lookup_member): Move body of lookup_field here and generalize.
(dfs_accessible_queue_p): Likewise.
(dfs_accessible_p): Likewise.
(dfs_access_in_type): Likewise.
(access_in_type): Likewise.
(compute_access): Remove, and replace with ...
(accessible_p): New function.
(vbase_types): Remove.
(vbase_decl_ptr_intermediate): Likewise.
(vbase_decl_ptr): Likewise.
(vbase_init_result): Likewise.
(closed_envelopes): Likewise.
(bvtable): Likewise.

From-SVN: r25661
43 files changed:
gcc/cp/ChangeLog
gcc/cp/call.c
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/init.c
gcc/cp/lex.c
gcc/cp/method.c
gcc/cp/parse.c
gcc/cp/parse.y
gcc/cp/pt.c
gcc/cp/search.c
gcc/testsuite/g++.old-deja/g++.brendan/crash11.C
gcc/testsuite/g++.old-deja/g++.brendan/crash19.C
gcc/testsuite/g++.old-deja/g++.brendan/enum6.C
gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C
gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C
gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C
gcc/testsuite/g++.old-deja/g++.jason/access17.C
gcc/testsuite/g++.old-deja/g++.jason/access23.C
gcc/testsuite/g++.old-deja/g++.law/arm14.C
gcc/testsuite/g++.old-deja/g++.law/union2.C
gcc/testsuite/g++.old-deja/g++.law/visibility12.C
gcc/testsuite/g++.old-deja/g++.law/visibility13.C
gcc/testsuite/g++.old-deja/g++.law/visibility16.C
gcc/testsuite/g++.old-deja/g++.law/visibility18.C
gcc/testsuite/g++.old-deja/g++.law/visibility19.C
gcc/testsuite/g++.old-deja/g++.law/visibility4.C
gcc/testsuite/g++.old-deja/g++.law/visibility8.C
gcc/testsuite/g++.old-deja/g++.law/visibility9.C
gcc/testsuite/g++.old-deja/g++.mike/p8785.C
gcc/testsuite/g++.old-deja/g++.other/access3.C
gcc/testsuite/g++.old-deja/g++.other/access4.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/access5.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/access6.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.other/ambig1.C
gcc/testsuite/g++.old-deja/g++.other/crash7.C
gcc/testsuite/g++.old-deja/g++.other/friend1.C
gcc/testsuite/g++.old-deja/g++.other/friend4.C
gcc/testsuite/g++.old-deja/g++.pt/derived2.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.pt/friend11.C
gcc/testsuite/g++.old-deja/g++.pt/friend21.C
gcc/testsuite/g++.old-deja/g++.pt/friend3.C