Friend class name lookup 2/n, PR c++/14513, c++/15410
Friend class name lookup 2/n, PR c++/14513, c++/15410 * name-lookup.c (lookup_name_real): Simplify. (lookup_type_scope): Add SCOPE parameter. Handle friend class lookup. * name-lookup.h (tag_scope): New enum type. (lookup_type_scope): Adjust declaration. * decl.c (lookup_and_check_tag, xref_tag, xref_tag_from_type): Change bool parameter GLOBALIZED to TAG_SCOPE parameter SCOPE. (start_enum): Likewise. Add assertion test that NAME is IDENTIFIER_NODE. Use anonymous name for dummy ENUMERAL_TYPE in case of error. * cp-tree.h (xref_tag, xref_tag_from_type): Adjust declarations. * parser.c (cp_parser_elaborated_type_specifier, cp_parser_class_head): Adjust call to xref_tag. * pt.c (lookup_template_class, instantiate_class_template): Likewise. * rtti.c (init_rtti_processing, build_dynamic_cast_1, tinfo_base_init, emit_support_tinfos): Likewise. * g++.dg/lookup/friend2.C: New test. * g++.dg/template/friend31.C: Likewise. From-SVN: r91299
Showing
- gcc/cp/ChangeLog 21 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/cp-tree.h 2 additions, 2 deletionsgcc/cp/cp-tree.h
- gcc/cp/decl.c 30 additions, 19 deletionsgcc/cp/decl.c
- gcc/cp/name-lookup.c 31 additions, 21 deletionsgcc/cp/name-lookup.c
- gcc/cp/name-lookup.h 17 additions, 1 deletiongcc/cp/name-lookup.h
- gcc/cp/parser.c 14 additions, 6 deletionsgcc/cp/parser.c
- gcc/cp/pt.c 3 additions, 2 deletionsgcc/cp/pt.c
- gcc/cp/rtti.c 4 additions, 4 deletionsgcc/cp/rtti.c
- gcc/testsuite/ChangeLog 6 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/lookup/friend2.C 21 additions, 0 deletionsgcc/testsuite/g++.dg/lookup/friend2.C
- gcc/testsuite/g++.dg/template/friend31.C 27 additions, 0 deletionsgcc/testsuite/g++.dg/template/friend31.C
Loading
Please register or sign in to comment