I just want to mention a nasty bug I'm encountering with Composer 2013.
Using Eigen 3.1.1
std::vector<Eigen::Vector4f,Eigen::aligned_allocator<Eigen::Vector4f> > test(256);
With Composer 2013: test is getting sized 0 !!
With Composer 2011: the allocation is OK
Is there a registered bug?
Any plans for a fix?
gianni c. wrote:If you define a function-local variable, the value is placed on the stack and it is valid while program counter (EIP) is in the scope of that function, not before, not after. When variable is global it has visibility throughout the whole program lifetime. That may be related to the issue you are seeing. Regarding response time, if you need fast answers then submit an issue with Premier Support along with a reproducible test case. This is user to user support forum with Intel engineers moderating and participating as much as they can. We all have a life outside of this forum.
Any comment from an Intel Guru???
** After a few days... I would really appreciate some comment from Intel support staff on this one for the benefit of the user community. **
Just a heads up -- there were past problems (aka bugs) in the way that Eigen uses the restrict keyword on structure members. The restrict keyword is honored by the compiler when objects are instantiated as stack variables, and the restrict keyword is not honored when objects are instantiated in a persistent scope (i.e. on the heap, or as global variables). In other words, bugs might appear in stack allocated objects that do not appear when objects are defined globally, or through the use of a new operator.