The following invalid code snippet triggers an ICE since GCC 4.0.0:
=================================================
struct A
{
template<int> template<typename T> friend void foo(T) {}
void bar() { foo(0); }
};
=================================================
bug.cc: In member function 'void A::bar()':
bug.cc:4: internal compiler error: in retrieve_specialization, at cp/pt.c:847
Please submit a full bug report, [etc.]
--
Summary: [4.0/4.1/4.2/4.3 regression] ICE on invalid friend
declaration
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, monitored
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: reichelt at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29732