This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/9050] [DR 147] Can't explicitly specialize C++ constructor templates



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]