I am using icpc 14.0.2 on Linux, here is a minimal program to reproduce the crash:
class A { public: virtual ~A() {} virtual void f() = 0; }; template<typename T> class B : public A { void f(); }; namespace { struct C {}; } template<> void B<C>::f(){}
The error message is:
testcase.cc(11): internal error: assertion failed at: "shared/cfe/edgcpfe/lower_il.c", line 7661 class B : public A ^ compilation aborted for testcase.cc (code 4)
Note that this compiles just fine (removing the anonymous name space):
class A { public: virtual ~A() {} virtual void f() = 0; }; template<typename T> class B : public A { void f(); }; struct C {}; template<> void B<C>::f(){}
Please let me know if and how I can further assist to debug this problem.
Best regards
Raimar