This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug preprocessor/47311] [C++0x] ICE in tsubst @cp/pt.c:10502
- From: "pluto at agmk dot net" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 16 Jan 2011 02:17:24 +0000
- Subject: [Bug preprocessor/47311] [C++0x] ICE in tsubst @cp/pt.c:10502
- Auto-submitted: auto-generated
- References: <bug-47311-4@http.gcc.gnu.org/bugzilla/>
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.