-
Notifications
You must be signed in to change notification settings - Fork 13.4k
Generator drop glue jumps from is_cleanup:false -> is_cleanup:true and the other way #58892
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Labels
A-MIR
Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
Comments
I noticed this, because cg_clif crashed with a verifier error about a jump to an undefined bb. (cg_clif omits |
Pretty printed shim (not fully transformed)
|
Forgot |
Centril
added a commit
to Centril/rust
that referenced
this issue
Mar 19, 2019
…cks, r=davidtwco Fixes for the generator transform * Moves cleanup annotations in pretty printed MIR so that they can be tested * Correctly determines which drops are in cleanup blocks when elaborating generator drops * Use the correct state for poisoning a generator Closes rust-lang#58892
bors
added a commit
that referenced
this issue
Mar 21, 2019
…dtwco Fixes for the generator transform * Moves cleanup annotations in pretty printed MIR so that they can be tested * Correctly determines which drops are in cleanup blocks when elaborating generator drops * Use the correct state for poisoning a generator Closes #58892
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
A-MIR
Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html
T-compiler
Relevant to the compiler team, which will review and decide on the PR/issue.
I only tested this with
-Cpanic=abort
.Wrong jumps: bb1 -> bb5, bb4 -> bb6, bb5 -> bb2.
Note: made mir dump below using
println!("{:#?}")
, becauserustc_mir::util::write_mir_pretty
doesn't work correctly for shims.Mir for `Instance { def: DropGlue(DefId(2/0:691 ~ core[479c]::ptr[0]::real_drop_in_place[0]), Some([generator@/Users/bjorn/Documents/rustc_codegen_cranelift/rust/src/test/run-pass/generator/panic-drops.rs:8:19: 10:6 {()}])), substs: [[generator@/Users/bjorn/Documents/rustc_codegen_cranelift/rust/src/test/run-pass/generator/panic-drops.rs:8:19: 10:6 {()}]] } _ZN4core3ptr18real_drop_in_place17h0fdaf8ce1f626024E`
The text was updated successfully, but these errors were encountered: