I get this when compiling the attached minimal test case.  The condition for
getting an ICE seems to be that:

1. A template template parameter's type is defined with 2 or more parameters
2. The type (ignoring the first parameter) is defined in terms of previous
template parameters, and none of the type's parameters are typename
3. A default parameter instantiates the template parameter

This seems to go back to at least gcc 3.3.

To reproduce: g++ icetest.C

$ g++ -v
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ./configure --with-gmp=/tmp/gcc-inst --prefix=/tmp/gcc-inst
--with-mpfr=/tmp/gcc-inst --enable-languages=c,c++
Thread model: posix
gcc version 4.3.0 20061201 (experimental)


-- 
           Summary: ICE in tsubst, at cp/pt.c:7359
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: pcc03 at doc dot ic dot ac dot uk
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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

Reply via email to