r246332 - in /branches/c++-modules/gcc: cp/cp-t...
nathan@gcc.gnu.org
nathan@gcc.gnu.org
Tue Mar 21 18:37:00 GMT 2017
Author: nathan
Date: Tue Mar 21 18:37:35 2017
New Revision: 246332
URL: https://gcc.gnu.org/viewcvs?rev=246332&root=gcc&view=rev
Log:
Keep hidden overloads at start of list
gcc/cp
* cp-tree.h (OVL_HIDDEN_P): New.
(ovl_iterator::hidden_p, unhide): New.
(DECL_HIDDEN_P): New.
(hidden_name_p, remove_hidden_names): Delete.
(ovl_skip_hidden): Declare.
* decl.c (builtin_function_1): Set DECL_ANTICIPATED before
pushing.
(xref_tag_1): Replace hidden_name_p with DECL_HIDDEN_P.
* name-lookup.c (anticipated_builtin_p)
skip_anticipated_buitins): New.
(supplement_binding_1): Use anticipated_builtin_p.
(replace_local_overload_binding): New. Broken out of
augment_local_overload_binding.
(fixup_unhidden_decl): New.
(pushdecl_maybe_friend_1): Deal with unhiding decl. Set
DECL_ANTICIPATED before really pushing.
(augment_local_overload_binding): Call
replace_local_overload_binding.
(push_overloaded_decl_1): Deal with unhiding decl.
(do_nonmember_using_decl): Use anticipated_builtin_p.
(ambiguous_decls): Use ovl_skip_hidden.
(lookup_name_real_1): Use DECL_HIDDEN_P, ovl_skip_hidden.
(arg_assoc_namespace): Use DECL_HIDDEN_P.
(lookup_arg_dependent_1): Use ovl_skip_hidden.
* pt.c (instantiate_class_template): Use DECL_HIDDEN_P.
* tree.c (ovl_move_unhidden): New.
(ovl_add): Deal with hiddenness.
(ovl_add_transient): Adjust.
(hidden_name_p, remove_hidden_names): Delete.
(ovl_skip_hidden): New.
(ovl_iterator::ovl_unhide): New.
gcc/testsuite/
* g++.dg/lookup/friend19.C: New.
* g++.dg/lookup/using56.C: New.
(--This line, and those below, will be ignored--
A gcc/testsuite/g++.dg/lookup/friend19.C
A gcc/testsuite/g++.dg/lookup/using56.C
M gcc/cp/pt.c
M gcc/cp/cp-tree.h
M gcc/cp/decl.c
M gcc/cp/name-lookup.c
M gcc/cp/tree.c
Added:
branches/c++-modules/gcc/testsuite/g++.dg/lookup/friend19.C
branches/c++-modules/gcc/testsuite/g++.dg/lookup/using56.C
Modified:
branches/c++-modules/gcc/cp/cp-tree.h
branches/c++-modules/gcc/cp/decl.c
branches/c++-modules/gcc/cp/name-lookup.c
branches/c++-modules/gcc/cp/pt.c
branches/c++-modules/gcc/cp/tree.c
More information about the Gcc-cvs
mailing list