-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rustc_driver: Catch ICEs on the main thread too #49826
Conversation
@bors: r+ Thanks! |
📌 Commit 6742795 has been approved by |
This seems to cause rollup to fail in #49875 (comment) after merging with the latest master. Could you verify if this is the case after rebasing? |
I will verify, but I doubt this would cause such a problem. The only difference should be whether a compiler panic also reports the ICE message. |
Weird! That test is fine on master (two expected errors and a clean exit), but it does indeed panic with just my patch rebased on top. I really don't understand why!
|
Thanks for verification! Let me take this off the queue first then. @bors r- |
I take that back! The test does "pass" on master, but wrongly so -- it's not actually clean. In compiletest's
|
Is there something blocking this? compiletest is eating ICEs in other compile-fail tests as well. |
It won't pass CI until #49889 is fixed, at least. |
Rebased now that #49891 is merged, including its fixes for the failures that had snuck into the tree. |
@bors: r+ |
📌 Commit 64bcbca has been approved by |
⌛ Testing commit 64bcbca with merge 24d49ea97e9b53a9aa14e67988a6388c6add1494... |
💔 Test failed - status-appveyor |
rustc_driver: Catch ICEs on the main thread too #48575 introduced an optimization to run rustc directly on the main thread when possible. However, the threaded code detects panics when they `join()` to report as an ICE. When running directly, we need to use `panic::catch_unwind` to get the same effect. cc @ishitatsuyuki r? @alexcrichton
☀️ Test successful - status-appveyor, status-travis |
#48575 introduced an optimization to run rustc directly on the main thread when possible. However, the threaded code detects panics when they
join()
to report as an ICE. When running directly, we need to usepanic::catch_unwind
to get the same effect.cc @ishitatsuyuki
r? @alexcrichton