about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/coverage/mod.rs
diff options
context:
space:
mode:
author许杰友 Jieyou Xu (Joe) <39484203+jieyouxu@users.noreply.github.com>2024-04-29 18:03:24 +0100
committerGitHub <noreply@github.com>2024-04-29 18:03:24 +0100
commit43265f5721d09645fc922a6dc71fa5e5b30a48d1 (patch)
treefe7613a832aeb01e6fb10ec06baa00a94562c722 /compiler/rustc_mir_transform/src/coverage/mod.rs
parent0580588ec62182e1387ad36aaad623284f2d409a (diff)
parent254a9fbe86a4a6d3c0481f7924c4b0393e1a230e (diff)
downloadrust-43265f5721d09645fc922a6dc71fa5e5b30a48d1.tar.gz
rust-43265f5721d09645fc922a6dc71fa5e5b30a48d1.zip
Rollup merge of #124504 - gurry:123710-union-ICE, r=oli-obk
Mark unions non-const-propagatable in `KnownPanicsLint` without calling layout

Fixes #123710

The ICE occurs during the layout calculation of the union `InvalidTag` in #123710 because the following assert fails:https://github.com/rust-lang/rust/blob/5fe8b697e729b6eb64841a3905e57da1b47f4ca3/compiler/rustc_abi/src/layout.rs#L289-L292

The layout calculation is invoked by `KnownPanicsLint` when it is trying to figure out which locals it can const prop. Since `KnownPanicsLint` is never actually going to const props unions thanks to PR https://github.com/rust-lang/rust/pull/121628 there's no point calling layout to check if it can. So in this fix I skip the call to layout and just mark the local non-const propagatable if it is a union.
Diffstat (limited to 'compiler/rustc_mir_transform/src/coverage/mod.rs')
0 files changed, 0 insertions, 0 deletions