Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
Announcements
This community is designed for sharing of public information. Please do not share Intel or third-party confidential information here.
7679 Discussions

Failed Assertion shared/cfe/edgcpfe/lower_il.c, line 17923

Georg_B_1
Beginner
166 Views

Hi,

I'm currently trying to compile a solution with the Intel Compiler (Intel(R) 64, Version 15.0.7.287 Build 20160518). It compiles without any errors using the Visual Studio Compiler (2013) on Windows, gcc on Linux and clang on macOS. However, there seems to be an error with the Intel Compiler and boost and I have no clue on what to try next. The complete error message is:

C:\development\dependencies\boost\include\boost-1_61\boost/move/detail/unique_ptr_meta_utils.hpp(361): internal error: assertion failed at: "shared/cfe/edgcpfe/lower_il.c", line 17923

I already found some posts on a simliar message on the forum here but nothing helped me out. I compiled boost 1.61 using the intel compiler and it worked without any problems.

Are there any suggestions?

Thanks a lot!

0 Kudos
1 Reply
Judith_W_Intel
Employee
166 Views

 

I'm pretty sure this is the same problem that was fixed in version 16.0 on 1/22/2016 tracked in our internal bugs database as DPD200377575.

This was the test case that triggered the problem (from Boost):

class deque {public: deque(){}; ~deque(){}; };
struct nat{};
struct default_delete
{
   nat operator()(deque* ptr) const
   {
     deque * const p = static_cast<deque *>(ptr);
     true ? delete [] p : delete p;
     return nat();
   }
};
struct unique_ptr_data
{
   default_delete & deleter(){return d;};
   deque* m_p;
   default_delete d;
};
class unique_ptr
{
public:
   unique_ptr(){};
   unique_ptr_data m_data;
   ~unique_ptr() {m_data.deleter()(m_data.m_p);}
};
inline unique_ptr make_unique() { return unique_ptr(); }
bool do_test()
{
   unique_ptr const p = make_unique();
   return true;
}
int main ()
{
   do_test();
   return 0;
}

Please upgrade to the latest 16.0 update or -- better yet -- to the 17.0 compiler.

thanks and sorry for the trouble.

Judy

Reply