Skip to content
Snippets Groups Projects
user avatar
Kriang Lerdsuwanakij authored
	Friend class name lookup 5/n
	PR c++/1016
	* cp-tree.h (pushtag): Adjust declaration.
	* decl.c (lookup_and_check_tag): Call lookup_type_scope if
	lookup_name fails.
	(xref_tag): Adjust call to pushtag.  Make hidden class visible.
	(start_enum): Adjust call to pushtag.
	* name-lookup.c (ambiguous_decl): Ignore hidden names.
	(qualify_lookup): Change return type to bool.
	(hidden_name_p): New function.
	(lookup_namespace_name, unqualified_namespace_lookup,
	lookup_name_real): Use it.
	(lookup_type_scope): Update comments.
	(maybe_process_template_type_declaration): Change parameter name
	from globalize to is_friend.
	(pushtag): Change globalize parameter of type int to tag_scope.
	Hide name if introduced by friend declaration.
	* name-lookup.h (hidden_name_p): Add declaration.
	* parser.c (cp_parser_lookup_name): Don't deal with hidden name
	here.
	* pt.c (push_template_decl_real): Make hidden class template
	visible.
	(lookup_template_class, instantiate_class_template): Adjust call
	to pushtag.
	* semantics.c (begin_class_definition): Likewise.
	* rtti.c (init_rtti_processing, build_dynamic_cast_1,
	tinfo_base_init, emit_support_tinfos): Use ts_current instead of
	ts_global.

	* g++.dg/lookup/hidden-class1.C: New test.
	* g++.dg/lookup/hidden-class2.C: Likewise.
	* g++.dg/lookup/hidden-class3.C: Likewise.
	* g++.dg/lookup/hidden-class4.C: Likewise.
	* g++.dg/lookup/hidden-class5.C: Likewise.
	* g++.dg/lookup/hidden-class6.C: Likewise.
	* g++.dg/lookup/hidden-class7.C: Likewise.
	* g++.dg/lookup/hidden-class8.C: Likewise.
	* g++.dg/lookup/hidden-class9.C: Likewise.
	* g++.dg/lookup/hidden-temp-class1.C: Likewise.
	* g++.dg/lookup/hidden-temp-class2.C: Likewise.
	* g++.dg/lookup/hidden-temp-class3.C: Likewise.
	* g++.dg/lookup/hidden-temp-class4.C: Likewise.
	* g++.dg/lookup/hidden-temp-class5.C: Likewise.
	* g++.dg/lookup/hidden-temp-class6.C: Likewise.
	* g++.dg/lookup/hidden-temp-class7.C: Likewise.
	* g++.dg/lookup/hidden-temp-class8.C: Likewise.
	* g++.dg/lookup/hidden-temp-class9.C: Likewise.
	* g++.dg/lookup/hidden-temp-class10.C: Likewise.
	* g++.dg/lookup/hidden-temp-class11.C: Likewise.

From-SVN: r96430
bd3d082e
History
This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.