diff --git a/compiler/rustc_mir_dataflow/src/value_analysis.rs b/compiler/rustc_mir_dataflow/src/value_analysis.rs index 66e2a445fbcd..02b92ed7a620 100644 --- a/compiler/rustc_mir_dataflow/src/value_analysis.rs +++ b/compiler/rustc_mir_dataflow/src/value_analysis.rs @@ -116,10 +116,19 @@ pub trait ValueAnalysis<'tcx> { fn super_intrinsic( &self, - _intrinsic: &NonDivergingIntrinsic<'tcx>, - _state: &mut State, + intrinsic: &NonDivergingIntrinsic<'tcx>, + state: &mut State, ) { - todo!(); + match intrinsic { + NonDivergingIntrinsic::Assume(..) => { + // Could use this, but ignoring it is sound. + } + NonDivergingIntrinsic::CopyNonOverlapping(CopyNonOverlapping { dst, .. }) => { + if let Some(place) = dst.place() { + state.flood(place.as_ref(), self.map()); + } + } + } } fn handle_assign(