Check all operands, they may contain indirections in their place

This commit is contained in:
Oli Scherer 2022-09-06 15:32:35 +00:00
parent cd928b0ecf
commit a0130e62ec
2 changed files with 2 additions and 3 deletions

View file

@ -592,8 +592,7 @@ impl<'cx, 'tcx> rustc_mir_dataflow::ResultsVisitor<'cx, 'tcx> for MirBorrowckCtx
);
}
StatementKind::Intrinsic(box ref kind) => match kind {
// Takes a `bool` argument, and has no return value, thus being irrelevant for borrowck
NonDivergingIntrinsic::Assume(..) => {},
NonDivergingIntrinsic::Assume(op) => self.consume_operand(location, (op, span), flow_state),
NonDivergingIntrinsic::CopyNonOverlapping(..) => span_bug!(
span,
"Unexpected CopyNonOverlapping, should only appear after lower_intrinsics",

View file

@ -1303,7 +1303,7 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
}
}
StatementKind::Intrinsic(box ref kind) => match kind {
NonDivergingIntrinsic::Assume(..) => {}
NonDivergingIntrinsic::Assume(op) => self.check_operand(op, location),
NonDivergingIntrinsic::CopyNonOverlapping(..) => span_bug!(
stmt.source_info.span,
"Unexpected NonDivergingIntrinsic::CopyNonOverlapping, should only appear after lowering_intrinsics",