Macro EIGEN_MAKE_ALIGNED_OPERATOR_NEW generates Warning C4702: unreachable code when building on VS2012 toolkit. My understanding of this: Part of that macro is another macro EIGEN_MAKE_ALIGNED_OPERATOR_NEW_NOTHROW which is unfolded to: void* operator new(size_t size, const std::nothrow_t&) throw() { try { return Eigen::internal::conditional_aligned_malloc<NeedsToAlign>(size); } catch (...) { return 0; } return 0; } The last return 0; seems to be the culprit. When I remove it, then VS2012 is happy and no warning appears.
Fixed here: https://bitbucket.org/eigen/eigen/commits/e50ba6c6976 In the devel branch it had been fixed already: https://bitbucket.org/eigen/eigen/commits/c071cfb18ff#LEigen/src/Core/util/Memory.hF713T689
-- 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/909.