ICE with /std:c++latest on MSVC 16.8.2
yuyoyuppe opened this issue · 4 comments
Just including llfio.hpp
triggers the following:
llfio\windows\include\llfio\v2.0\algorithm\../detail/impl/traverse.ipp(462,1): fatal error C1001: Internal compiler error.
3>(compiler file 'D:\a01\_work\6\s\src\vctools\Compiler\CxxFE\sl\p1\c\p0gettok.c', line 9634)
changing std to /std:c++17 fixes it. We should report it to VC team, though perhaps it's possible to restructure that function as a workaround in the meantime 🙂
Already reported to https://developercommunity.visualstudio.com/content/problem/1264150/internal-compiler-error-in-msvc-1928293330.html. Another workaround is just use VS2019 16.7, which works just fine.
According to the issue commentary, Microsoft cannot reproduce the ICE. I suspect it is because they are using the _hl targets. I'll install 16.8 and see if I can get them an exact repro.
Microsoft cannot reproduce the ICE
I think that's because currently cmake generates .vcxproj
s with /std:c++17
by default, which works fine. I've reproduced the issue like this:
- clone llfio and submodules
mkdir build & cd build
cmake -G “Visual Studio 16 2019” -A x64 ../
- open VS and manually override std to
/std:c++latest
just forllfio_dl
project - build
llfio_dl
I'm surprised you found it building at all on latest MSVC for non _hl target. When I tried, the Coroutines detection blew up. I'll look into fixing that tomorrow morning.
Non _hl targets ought to now be VS2019.8 compatible. Microsoft say that VS2019.9 preview no longer ICEs, so I expect the next point release of VS2019.8 will fix the ICE. Thanks for reporting this issue!