An LLVM optimization pass is somehow producing invalid code for a specific linking.wast test, but only when optimizations are turned on (O1 is sufficient) and only on 32-bit windows.
The precise issue is unknown, but the end result is that a function gets inlined, and the now inlined parameter is set to a garbage value instead of the correct value. This may either be a very subtle undefined behavior issue, or it may be an actual bug in LLVM.
An LLVM optimization pass is somehow producing invalid code for a specific linking.wast test, but only when optimizations are turned on (O1 is sufficient) and only on 32-bit windows.
The precise issue is unknown, but the end result is that a function gets inlined, and the now inlined parameter is set to a garbage value instead of the correct value. This may either be a very subtle undefined behavior issue, or it may be an actual bug in LLVM.