Conversation
|
r? @TaKO8Ki rustbot has assigned @TaKO8Ki. Use Why was this reviewer chosen?The reviewer was selected based on:
|
| | | ||
| = note: evaluation of `<S<S<()>> as std::mem::SizedTypeProperties>::SIZE` failed here | ||
|
|
||
| note: the above error was encountered while instantiating `fn std::mem::size_of::<S<S<()>>>` |
This comment has been minimized.
This comment has been minimized.
8a3ce8c to
7038a8c
Compare
This comment has been minimized.
This comment has been minimized.
|
Looks like Miri treats fatal errors as panics. |
|
The Miri subtree was changed cc @rust-lang/miri |
| if !panic_payload.is::<FatalErrorMarker>() { | ||
| ecx.handle_ice(); | ||
| } |
There was a problem hiding this comment.
What is happening here, why is this needed now?
There was a problem hiding this comment.
layout_of cycles will now unwind with FatalErrorMarker (like other fatal errors). Miri is currently treating any unwinding as a panic, which this changes by skipping the ICE message for fatal errors.
It might make sense to also print the backtrace for fatal errors case, as I guess it's similar to #85633 though a bit noisy.
There was a problem hiding this comment.
Oh I see, that unwind is started via resume_unwind so the panic hook never gets called... feels kind of hacky given the function is called "resume" but oh well.
| if !panic_payload.is::<FatalErrorMarker>() { | |
| ecx.handle_ice(); | |
| } | |
| // rustc "handles" some errors by unwinding with FatalErrorMarker | |
| // (after emitting suitable diagnostics), so do not treat those as ICEs. | |
| if !panic_payload.is::<FatalErrorMarker>() { | |
| ecx.handle_ice(); | |
| } |
There was a problem hiding this comment.
resume_unwind doesn't have the best name, it always starts unwinding. It probably should have been just unwind.
f9631c9 to
67fe373
Compare
This comment has been minimized.
This comment has been minimized.
|
Thanks. After resolving the conflicts, r=me. |
67fe373 to
db30a36
Compare
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
This makes
layout_ofcycles fatal errors.This is a step towards removing query cycle recovery.