Consider:
template<typename T, T> struct A;
template<typename> struct B;
template<template<typename T, T> class U> struct B<U<char, 'h'> > {};
B<A<char,'h'> > x;
// internal compiler error: in dependent_type_p, at cp/pt.c:15539
Comeau 4.3.9 and GCC 4.1.2 accept the code.
--
Summary: partial template specialization ICE in dependent_type_p,
at cp/pt.c:15539
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc-bugzilla at contacts dot eelis dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35678