The following testcase ICEs on mainline:
===========================================
struct A
{
template<typename T>
static void* operator new(T) {}
};
===========================================
bug.cc:4: error: 'operator new' takes type 'size_t' ('long unsigned int') as
first parameter
bug.cc:4: error: invalid template declaration of 'static void* A::operator
new(long unsigned int)'
bug.cc:4: error: invalid member template declaration 'static void* A::operator
new(long unsigned int)'
bug.cc: In static member function 'static void* A::operator new(long unsigned
int)':
bug.cc:4: internal compiler error: in dependent_type_p, at cp/pt.c:12383
Please submit a full bug report, [etc.]
--
Summary: [4.2 regression] ICE on templated operator new
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Keywords: ice-on-invalid-code, error-recovery, 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=27559