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