re PR c++/43558 (Rejects specialization)
authorDodji Seketeli <dodji@redhat.com>
Wed, 31 Mar 2010 09:21:02 +0000 (09:21 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Wed, 31 Mar 2010 09:21:02 +0000 (11:21 +0200)
commitd7df0b912eeed2fbe9c42dddd6f2c6a6a4ed4b17
tree9c61e3b92286af000161c01dd1cffdf7c1439882
parentf0c01ffd7723295ca7ca90a7e87351c8fb6f20e2
re PR c++/43558 (Rejects specialization)

Fix PR c++/43558

gcc/cp/ChangeLog:
PR c++/43558
* cp-tree.h (TEMPLATE_TYPE_PARM_SIBLING_PARMS): New accessor macro.
* pt.c (end_template_parm_list): Store sibling template parms of
each TEMPLATE_TYPE_PARMs into its TEMPLATE_TYPE_PARM_SIBLING_PARMS.
(push_template_decl_real): Don't store the containing template decl
into the DECL_CONTEXT of TEMPLATE_TYPE_PARMs anymore.
* typeck.c (get_template_parms_of_dependent_type): Get sibling parms
of a TEMPLATE_TYPE_PARM from TEMPLATE_TYPE_PARM_SIBLING_PARMS.
Simplify the logic.

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

From-SVN: r157857
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/pt.c
gcc/cp/typeck.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/template/typedef31.C [new file with mode: 0644]