about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/coverage/spans.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-08-20 09:58:52 +0000
committerbors <bors@rust-lang.org>2023-08-20 09:58:52 +0000
commitff55fa30267d7963146c52026b4f4f5396484675 (patch)
treec3147a335426ae64f72fea43c91510b0e8c9662f /compiler/rustc_mir_transform/src/coverage/spans.rs
parentb6ab01a7131481b52131a9bd814dc8084052f643 (diff)
parent0a7202d4769fe417988b7e74333e3014a51ad462 (diff)
downloadrust-ff55fa30267d7963146c52026b4f4f5396484675.tar.gz
rust-ff55fa30267d7963146c52026b4f4f5396484675.zip
Auto merge of #113124 - nbdd0121:eh_frame, r=cjgillot
Add MIR validation for unwind out from nounwind functions + fixes to make validation pass

`@Nilstrieb`  This is the MIR validation you asked in https://github.com/rust-lang/rust/pull/112403#discussion_r1222739722.

Two passes need to be fixed to get the validation to pass:
* `RemoveNoopLandingPads` currently unconditionally introduce a resume block (even there is none to begin with!), changed to not do that
* Generator state transform introduces a `assert` which may unwind, and its drop elaboration also introduces many new `UnwindAction`s, so in this case run the AbortUnwindingCalls after the transformation.

I believe this PR should also fix Rust-for-Linux/linux#1016, cc `@ojeda`

r? `@Nilstrieb`
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/spans.rs')
0 files changed, 0 insertions, 0 deletions