diff options
| author | Ralf Jung <post@ralfj.de> | 2022-07-04 11:46:10 -0400 |
|---|---|---|
| committer | Ralf Jung <post@ralfj.de> | 2022-07-13 10:22:59 -0400 |
| commit | 874a130ca01eb8a915b3ba0898aaeff35578758a (patch) | |
| tree | 2c4b4bfb74a5d962c01c305cdc20c43ee389cc50 /compiler/rustc_const_eval/src/const_eval | |
| parent | ca4e39400ef33198e2715973d1c67a1d3cee15e7 (diff) | |
| download | rust-874a130ca01eb8a915b3ba0898aaeff35578758a.tar.gz rust-874a130ca01eb8a915b3ba0898aaeff35578758a.zip | |
get rid of MemPlaceMeta::Poison
MPlaceTy::dangling still exists, but now it is only called in places that actually conceptually allocate something new, so that's fine.
Diffstat (limited to 'compiler/rustc_const_eval/src/const_eval')
| -rw-r--r-- | compiler/rustc_const_eval/src/const_eval/eval_queries.rs | 1 | ||||
| -rw-r--r-- | compiler/rustc_const_eval/src/const_eval/mod.rs | 1 |
2 files changed, 1 insertions, 1 deletions
diff --git a/compiler/rustc_const_eval/src/const_eval/eval_queries.rs b/compiler/rustc_const_eval/src/const_eval/eval_queries.rs index b18976302b4..f03ceb54830 100644 --- a/compiler/rustc_const_eval/src/const_eval/eval_queries.rs +++ b/compiler/rustc_const_eval/src/const_eval/eval_queries.rs @@ -165,6 +165,7 @@ pub(super) fn op_to_const<'tcx>( Ok(ref mplace) => to_const_value(mplace), // see comment on `let try_as_immediate` above Err(imm) => match *imm { + _ if imm.layout.is_zst() => ConstValue::ZeroSized, Immediate::Scalar(x) => match x { ScalarMaybeUninit::Scalar(s) => ConstValue::Scalar(s), ScalarMaybeUninit::Uninit => to_const_value(&op.assert_mem_place()), diff --git a/compiler/rustc_const_eval/src/const_eval/mod.rs b/compiler/rustc_const_eval/src/const_eval/mod.rs index bf65fdc54ca..edc4c13b6e8 100644 --- a/compiler/rustc_const_eval/src/const_eval/mod.rs +++ b/compiler/rustc_const_eval/src/const_eval/mod.rs @@ -147,7 +147,6 @@ pub(crate) fn deref_mir_constant<'tcx>( let ty = match mplace.meta { MemPlaceMeta::None => mplace.layout.ty, - MemPlaceMeta::Poison => bug!("poison metadata in `deref_mir_constant`: {:#?}", mplace), // In case of unsized types, figure out the real type behind. MemPlaceMeta::Meta(scalar) => match mplace.layout.ty.kind() { ty::Str => bug!("there's no sized equivalent of a `str`"), |
