Open hjyamauchi opened 1 week ago
I am not sure if this is a bug in the MSVC compiler or some undefined behavior in the LLVM code, but it seems to be related to the same pattern of equality checks of a byte-sized field in a value-type struct failing due to non-zero/garbage bits in the higher 24 bits on a 32-bit W register or a 32-bit piece of memory.
I created a reduced reproducer and reported here: https://developercommunity.visualstudio.com/t/VC-17103-arm64-C-compiler:-a-potenti/10699487
If I build and run the tests (
ninja check-clang check-llvm
) near head (commit 259ce1199906554fba5c8d3b07b6ce14ee42d301
) with Visual Studio 17.10.3 on a Windows ARM64 machine (using the arm64 native cl.exe, no emulation), I get a large number of test assert failures:Here are the
sort|uniq
'd assert failures from the test run:I started looking into this because the Swift toolchain build (using downstream
swiftlang/llvm-project
) seems to result in similar assert failures with VS 17.10.3.