From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15795 invoked by alias); 21 Nov 2009 06:34:25 -0000 Received: (qmail 15729 invoked by alias); 21 Nov 2009 06:34:13 -0000 Date: Sat, 21 Nov 2009 06:34:00 -0000 Message-ID: <20091121063413.15728.qmail@sourceware.org> X-Bugzilla-Reason: CC References: Subject: [Bug c++/9050] [DR 147] Can't explicitly specialize C++ constructor templates In-Reply-To: Reply-To: gcc-bugzilla@gcc.gnu.org To: gcc-bugs@gcc.gnu.org From: "jason at gcc dot gnu dot org" Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org X-SW-Source: 2009-11/txt/msg01765.txt.bz2 ------- Comment #11 from jason at gcc dot gnu dot org 2009-11-21 06:34 ------- Subject: Bug 9050 Author: jason Date: Sat Nov 21 06:33:56 2009 New Revision: 154403 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=154403 Log: PR c++/9050, DR 147, DR 318 * parser.c (cp_parser_lookup_name): If the name matches the explicit class scope, we're naming the constructor. (cp_parser_constructor_declarator_p): Just use cp_parser_unqualified_id if we have a nested-name-specifier. (cp_parser_direct_declarator): Handle getting an overload set as a constructor declarator. (cp_parser_unqualified_id): Avoid looking up the constructor when naming the destructor. (cp_parser_diagnose_invalid_type_name): Give good diagnostic for improper use of constructor as template. * typeck.c (finish_class_member_access_expr): Give good diagnostic about calling constructor. * error.c (dump_aggr_type): Don't print A::A for injected-class-name. Added: trunk/gcc/testsuite/g++.dg/template/ctor9.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/error.c trunk/gcc/cp/parser.c trunk/gcc/cp/typeck.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/lookup/name-clash4.C trunk/gcc/testsuite/g++.dg/tc1/dr147.C trunk/gcc/testsuite/g++.old-deja/g++.jason/temporary5.C trunk/gcc/testsuite/g++.old-deja/g++.pt/ctor2.C -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=9050