PR c++/8442, c++/8806
authorKriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
Fri, 1 Aug 2003 15:06:02 +0000 (15:06 +0000)
committerKriang Lerdsuwanakij <lerdsuwa@gcc.gnu.org>
Fri, 1 Aug 2003 15:06:02 +0000 (15:06 +0000)
commitcbd63935d8cb0edec8d27a7c427106b41d85a29f
treecfa3a63f72156106d2f13838ea20b64ffacdbb1f
parentee3071efe506d022e4cad7d81354724c01e0f932
PR c++/8442, c++/8806

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.

From-SVN: r70048
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