Forcing long double to be 128bit fails with assertion on newer VS 2019 version
kaadam opened this issue · 4 comments
It seems when we force long double to be 128bit on Windows (#1284 ), it causes an assertion in newer Windows system headers[1] (VS 2019 14.29.30133). By default double and long double is equal to each other, both are 64bit on Windows. FLOAT128 is not supported.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include\xlocnum(618,9): error: static assertion failed due to requirement 'sizeof(double) == sizeof(long double)': Bad assumption: sizeof(double) == sizeof(long double).
Is there a solution/workaround for this issue?
Is there a solution/workaround for this issue?
Hi Alexander,
Well, the workaround is currently to remove this compiler option which fixes the build on Windows. Of course with that limitation long double will be 64 bits until we figure out the final solution to support float128 on Windows.
With Adam's workaround, as long as we don't enable quad-precision FP support on Windows, the problematic code (which assumes that float128_t
is 128 bits in size) will in theory not be used, and hence cause no problem.