Summary: | macOS (built-in) LLVM/Clang compiler crash with OpenMP | ||
---|---|---|---|
Product: | Eigen | Reporter: | Cédric Hubert <cedric.hubert> |
Component: | Core - general | Assignee: | Nobody <eigen.nobody> |
Status: | NEW --- | ||
Severity: | Compilation Problem | CC: | cedric.hubert, chtz, gael.guennebaud, jacob.benoit.1 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | x86 - 64-bit | ||
OS: | Mac OS | ||
Whiteboard: |
Description
Cédric Hubert
2019-07-24 09:45:05 UTC
This does look like a clang/xcode issue, so you should also report it to the clang/llvm team. Still, if we want to work-around this, it would be nice if you could bisect to the first Eigen version which causes the issue. Also, does it fail with an otherwise empty .cpp file (except the `#include` and maybe an empty main function)? -- If so, use that to make a report at the LLVM bugtracker. And please cross-reference to that bug-report (and maybe back as well). Unfortunately, it seems that, since I don't have a paid developer account, I can't submit bug reports. There is a more general feeback assisant, but it does not include developer applications, like the compiler or Xcode itself. Regarding the Eigen side of the problem, I think I have located the changeset that causes the compiler crash. The crash appears at changeset 31995b2 by Gael Guennebaud on 2017-01-19, with message 'Add support for fixed-value in symbolic expression, c++11 only for now' (https://bitbucket.org/eigen/eigen/commits/31995b21892185c8f48a80767111af58f2a1924e). In file Eigen/src/Core/util/IndexedViewHelper.h, commenting line 63 suffices to workaround the compiler crash. But I don't know if it leads to problems other than the use of the 'end' flag. In the latest version of the code, it is (to me) a bit more tricky to workaround this crash because of the evolutions of the code in two years (I not familiar with the internals of Eigen). I hope these precisions will help. Feel free to ask me to do some tests if necessary. Cedric I just realize that the crash is connected to the '-std=gnu++14' option for LLVM/Clang. Switching to 'gnu++11' works fine. So, still based on changeset 31995b2, and still at line 63 of file Eigen/src/Core/util/IndexedViewHelper.h, replacing end(last+fix<1>()) by the gnu++11 version (defined in Eigen/src/Core/util/IntegralConstant.h): end(last+Eigen::internal::fix_t<1>()) compiles without crash. -- 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/1734. |