------- Comment #18 from dodji at gcc dot gnu dot org  2009-12-19 22:40 -------
Subject: Bug 42225

Author: dodji
Date: Sat Dec 19 22:40:37 2009
New Revision: 155363

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=155363
Log:
Fix PR c++/42225, take 2

gcc/cp/ChangeLog:
        PR c++/42225
        * pt.c (push_template_decl_real): Set DECL_CONTEXT of template type
        parms to their containing template decl.
        * typeck.c (comp_template_parms_position): Split this from
        structural_comptypes.
        (incompatible_template_type_parms_p): Renamed
        incompatible_dependent_typedefs_p into this. Change the function to
        handle comparison between TEMPLATE_TYPE_PARMs only.
        (structural_comptypes): Use comp_template_parms_position in
        TEMPLATE_TEMPLATE_PARM and BOUND_TEMPLATE_TEMPLATE_PARM cases.
        Use incompatible_template_type_parms_p in TEMPLATE_TYPE_PARM case.
        * mangle.c (decl_mangling_context): Template type parms don't have
        a mangling context.
        * tree.c (cp_set_underlying_type): Set type structural equality
        only for TEMPLATE_TYPE_PARMs.

gcc/testsuite/ChangeLog:
        PR c++/42225
        * g++.dg/template/typedef26.C: New test.

Added:
    trunk/gcc/testsuite/g++.dg/template/typedef26.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/mangle.c
    trunk/gcc/cp/pt.c
    trunk/gcc/cp/tree.c
    trunk/gcc/cp/typeck.c
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42225

Reply via email to