PR c++/8442, c++/8806
commit220b71edb729f8cb24de27b51d4478bc817c67e0
authorlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2003 15:06:02 +0000 (1 15:06 +0000)
committerlerdsuwa <lerdsuwa@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 1 Aug 2003 15:06:02 +0000 (1 15:06 +0000)
treecfa3a63f72156106d2f13838ea20b64ffacdbb1f
parent8512e308ff944b95a6dea55151f952118716eae5
PR c++/8442, c++/8806
* decl.c (qualify_lookup): Accept TEMPLATE_DECL if types are
preferred.
(check_elaborated_type_specifier): Add allow_template_p
parameter.  Check tag mismatch and class template.
(xref_tag): Add template_header_p parameter.  Add assertion
that name is an IDENTIFIER_NODE.  Remove implicit typename
warning.  Simplify lookup process if globalize is true.
(cxx_init_decl_processing): Adjust call to xref_tag.
(xref_tag_from_type): Likewise.
* decl2.c (handle_class_head): Likewise.
* parser.c (cp_parser_elaborated_type_specifier,
cp_parser_class_head): Likewise.
* rtti.c (init_rtti_processing, build_dynamic_cast1,
tinfo_base_init, emit_support_tinfos): Likewise.
* class.c (is_base_of_enclosing_class): Remove.
* pt.c (convert_template_argument): Don't accept RECORD_TYPE as
template template argument.
* cp-tree.h (xref_tag): Adjust declaration.
(is_base_of_enclosing_class): Remove.
* NEWS: Document template template argument change.

* g++.dg/template/elab1.C: Likewise.
* g++.dg/template/type2.C: Likewise.
* g++.dg/template/ttp3.C: Adjust expected error message.
* g++.old-deja/g++.law/visibility13.C: Likewise.
* g++.old-deja/g++.niklas/t135.C: Likewise.
* g++.old-deja/g++.pt/ttp41.C: Likewise.
* g++.old-deja/g++.pt/ttp43.C: Use qualified name for template
template argument.
* g++.old-deja/g++.pt/ttp44.C: Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@70048 138bc75d-0d04-0410-961f-82ee72b054a4
18 files changed:
gcc/cp/ChangeLog
gcc/cp/NEWS
gcc/cp/class.c
gcc/cp/cp-tree.h
gcc/cp/decl.c
gcc/cp/decl2.c
gcc/cp/parser.c
gcc/cp/pt.c
gcc/cp/rtti.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/elab1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/template/ttp3.C
gcc/testsuite/g++.dg/template/type2.C [new file with mode: 0644]
gcc/testsuite/g++.old-deja/g++.law/visibility13.C
gcc/testsuite/g++.old-deja/g++.niklas/t135.C
gcc/testsuite/g++.old-deja/g++.pt/ttp41.C
gcc/testsuite/g++.old-deja/g++.pt/ttp43.C
gcc/testsuite/g++.old-deja/g++.pt/ttp44.C