We have a large open source software project that uses OpenMP and consists of a few libraries and python wrappers for those built using boost::python. Up until intel composer XE 12 everything was working fine but both with 13.1 and 13.5 we get a segmentation fault for a particular use-case. I was able to reproduce with a small example (see attachment). Note that the code example does not use OpenMP at all but compiling with the -openmp flag causes a segmentation fault, while leaving the flag off works as expected.
A valgrind run reveals that the crash is due to an invalid address within boost::throw_exception<bad_weak_ptr>.
To compile/link the example:
icpc -o testme.so -openmp -lpython2.7 -lboost_python -shared -fPIC testme.cpp
and then to use:
python -c "import testme; testme.printone()"
Has anyone seen this behaviour elsewhere? Is this a coding error or an issue with the compiler? Note that using gcc works.