http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47311
Pawel Sikora <pluto at agmk dot net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dodji at gcc dot gnu.org --- Comment #14 from Pawel Sikora <pluto at agmk dot net> 2011-01-16 02:16:59 UTC --- 0d432ee0d0d07e9c17b69e06afc1be9d65f57546 is the first bad commit: commit 0d432ee0d0d07e9c17b69e06afc1be9d65f57546 Author: dodji <dodji@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Tue Nov 2 12:44:19 2010 +0000 Restore canonical type comparison for dependent type(def)s This patch restores canonical type comparison for dependent types and then dependent typedefs. After this patch, two template type parameters T are equal if they have the same index, level, *and* number of sibling parameters. The novelty is to take in account the number of sibling parameters. To do this we first build the template parameters w/o taking in account their number of siblings. When we know the number of template parameters we fix up each template parameter with the number of slibling parameters and we build the appropriate canonical types accordingly. The patch fixes the fallouts deemed necessary. This fixes PR c++/45606 but actually fixes all the previous bugs related to dependent typedef comparison we had since we started to properly representing dependent typedefs.