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