Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Internal compiler error when referring to a member type of templated class

Saran_T_
Beginner
352 Views

I'm writing code containing something like

template <typename T>
class first_class;

template <typename T>
class second_class
{
  typedef typename first_class<T>::some_member_type  my_member_now;
}

I've been happily compiling this kind of code without trouble until today, the compiler decides to throw the following

internal error: assertion failed: equiv_template_arg_lists: unequal arg list lengths (shared/cfe/edgcpfe/templates.c, line 5823)

with an arrow-head pointing at "some_member_type". I realise this isn't much to go by, but I have been unable to pin down what exactly is causing this: as I said, essentially the same kind of code appears lots of times elsewhere in my project.

Since the error points at the compiler's internal code, I was wondering if anyone from Intel would be able to give some additional info as to what may have caused this. (I'm using icc 13.0.2 20130314 on OSX with c++11 mode. GCC 4.7.1 does not complain about anything in my code.)

Thanks

0 Kudos
1 Reply
Judith_W_Intel
Employee
352 Views

 

I can't reproduce the problem with your code. We need an actual reproducer. Please preprocess the code (adding -E or -P to your command line) and then please attach that as a reproducer.

thanks, Judy

0 Kudos
Reply