------- Comment #5 from jason at gcc dot gnu dot org 2009-11-16 23:29 ------- Subject: Bug 13950
Author: jason Date: Mon Nov 16 23:29:25 2009 New Revision: 154223 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154223 Log: PR c++/13950, DR 176 * search.c (lookup_field_r): Allow lookup to find the injected-class-name from a template base. (template_self_reference_p): Remove. * decl.c (make_typename_type): Diagnose ambiguity. Use maybe_get_template_decl_from_type_decl. * parser.c (cp_parser_template_name): Pass true to is_template rather than use maybe_get_template_decl_from_type_decl. (cp_parser_lookup_name): Use maybe_get_template_decl_from_type_decl. * pt.c (maybe_get_template_decl_from_type_decl): Handle ambiguity. Use DECL_SELF_REFERENCE_P. * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Avoid duplicate ambiguity error. * error.c (dump_decl): Don't say "typedef" for injected-class-name. * pt.c (convert_template_argument): Tweak logic. Added: trunk/gcc/testsuite/g++.dg/template/injected1.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/decl.c trunk/gcc/cp/error.c trunk/gcc/cp/parser.c trunk/gcc/cp/pt.c trunk/gcc/cp/search.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/template/inherit.C trunk/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C trunk/gcc/testsuite/g++.old-deja/g++.pt/lookup8.C trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp22.C trunk/gcc/testsuite/g++.old-deja/g++.pt/ttp23.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13950