There are two current PRs for fixing make check-stage1
:
-
#27417 - This runs all tests with a stage2
compiletest
binary (built with a stage1 compiler) so landing pads are enabled for that driver. It then has a#[cfg(stage0)]
to callstd::process:exit(101)
in stage0 and otherwise panic in stage1+. This means that ICE messages are all silenced by default but normal compiler errors work as usual. -
#28206 - This takes the same strategy of running all tests with a stage2
compiletest
, but instead of#[cfg]
logic it registers a custom panic handler with the infrastructure we currently have today. If the panicking thread is considered the rustc thread, then the process will always callexit(101)
but it’ll also print ICE messages right before doing so.
I think that this is related to custom panic handlers and also disabling landing pads as a more official compiler option, but it’s also somewhat orthogonal in the sense that compiletest
and our test infrastructure are not currently design to work with 0 landing pads, so something is gonna have to be caught somewhere.