The following code causes a stack overflow in DenseCoeffsBase.h line 212 (as for changeset eac2061f58b1). > #include <Eigen/Core> > #include <Eigen/LU> > > template<class Derived> > void foo(const Eigen::MatrixBase<Derived>& value) > { > Eigen::Matrix2d tmp = value; // boom > } > > int main() > { > foo(Eigen::Matrix2d::Identity().inverse()); > } This does not happen, if I call .eval(). I'm using Visual Studio 12 2013.
Created attachment 562 [details] Test case
The problem is that .inverse() returns a ReturnByValue but the initialization above tries to copy the expression packet-wise. I fixed it locally. I'll commit it after running the testsuite.
Fixed: https://bitbucket.org/eigen/eigen/commits/510021a
Great. Thanks!
-- GitLab Migration Automatic Message -- This bug has been migrated to gitlab.com's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.com/libeigen/eigen/issues/993.