This test was disabled on Windows through the `MSC_VER` condition. The
failure was due to the redirection of the output which does not behave
entirely the expected way with the lit shell. Use a temporary file
instead and enable the test on Windows.
Rather than outputting diagnostics and to stderr, output all the extra
information added when deserialization fatally fails to the pretty stack
trace instead. Since the pretty stack trace is added to crash logs, this
should avoid the dance of requesting the compiler output
- Moves the previous "**** DESERIALIZATION FAILURE ..." output to the
last pretty stack trace line
- Removes the module and compiler version notes added to the fatal
diagnostic
- Adds a new effective compiler version line for all frontend failure.
Somewhat duplicates the line from the driver, but adds in the
effective version
- Adds a new line for the full misc version of the module that failed.
May double up with previous "While reading from ..." lines that are
added in various deserialization methods, but better to have it
twice than not at all
The test is very flaky. It works and stops working randomly for no
apparent reason. To avoid future problems, and since VS2019 keeps
working without these problems, mark the tests as unsupported to avoid
the noise.
See also #34143 and #34625.
The test started working in the last week, for unknown reasons.
Remove the XFAIL line, but keep the infra for detecting the MSVC version
for the tests. It might be useful later.
If the test starts failing again, and nobody has any idea why, the best
path forward might be marking it as UNSUPPORTED.
See also #33383 where this problem is better explained.
MSVC doesn't seem to trigger the exception code when no frame pointers are generated. The only thing missing would be for interpreted code to have a more informative crash message.
Add a new LLVM Lit feature with the value of the VisualStudioVersion environment variable (it seems to not change even for minor versions, so it is an easy way to figure out the 2017/2019 difference, even if updates are applied).
Use the new feature in a XFAIL check in the test.