./x.py fmt

This commit is contained in:
Tomasz Miąsko
2021-02-15 00:00:00 +00:00
parent d06a2a368d
commit f2da425bff
5 changed files with 34 additions and 26 deletions

View File

@@ -577,7 +577,8 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
// the last field). Can't have foreign types here, how would we // the last field). Can't have foreign types here, how would we
// adjust alignment and size for them? // adjust alignment and size for them?
let field = layout.field(self, layout.fields.count() - 1)?; let field = layout.field(self, layout.fields.count() - 1)?;
let (unsized_size, unsized_align) = match self.size_and_align_of(metadata, &field)? { let (unsized_size, unsized_align) =
match self.size_and_align_of(metadata, &field)? {
Some(size_and_align) => size_and_align, Some(size_and_align) => size_and_align,
None => { None => {
// A field with extern type. If this field is at offset 0, we behave // A field with extern type. If this field is at offset 0, we behave

View File

@@ -226,8 +226,11 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
let l = self.read_immediate(&args[0])?; let l = self.read_immediate(&args[0])?;
let r = self.read_immediate(&args[1])?; let r = self.read_immediate(&args[1])?;
let is_add = intrinsic_name == sym::saturating_add; let is_add = intrinsic_name == sym::saturating_add;
let (val, overflowed, _ty) = let (val, overflowed, _ty) = self.overflowing_binary_op(
self.overflowing_binary_op(if is_add { BinOp::Add } else { BinOp::Sub }, &l, &r)?; if is_add { BinOp::Add } else { BinOp::Sub },
&l,
&r,
)?;
let val = if overflowed { let val = if overflowed {
let num_bits = l.layout.size.bits(); let num_bits = l.layout.size.bits();
if l.layout.abi.is_signed() { if l.layout.abi.is_signed() {

View File

@@ -83,7 +83,7 @@ impl<'mir, 'tcx: 'mir, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
Some((dest, ret)) => { Some((dest, ret)) => {
dest_place = self.eval_place(dest)?; dest_place = self.eval_place(dest)?;
Some((&dest_place, ret)) Some((&dest_place, ret))
}, }
None => None, None => None,
}; };
self.eval_fn_call(fn_val, abi, &args[..], ret, *cleanup)?; self.eval_fn_call(fn_val, abi, &args[..], ret, *cleanup)?;

View File

@@ -18,7 +18,8 @@ pub trait Value<'mir, 'tcx, M: Machine<'mir, 'tcx>>: Copy {
fn layout(&self) -> TyAndLayout<'tcx>; fn layout(&self) -> TyAndLayout<'tcx>;
/// Makes this into an `OpTy`. /// Makes this into an `OpTy`.
fn to_op(&self, ecx: &InterpCx<'mir, 'tcx, M>) -> InterpResult<'tcx, OpTy<'tcx, M::PointerTag>>; fn to_op(&self, ecx: &InterpCx<'mir, 'tcx, M>)
-> InterpResult<'tcx, OpTy<'tcx, M::PointerTag>>;
/// Creates this from an `MPlaceTy`. /// Creates this from an `MPlaceTy`.
fn from_mem_place(mplace: MPlaceTy<'tcx, M::PointerTag>) -> Self; fn from_mem_place(mplace: MPlaceTy<'tcx, M::PointerTag>) -> Self;
@@ -31,8 +32,11 @@ pub trait Value<'mir, 'tcx, M: Machine<'mir, 'tcx>>: Copy {
) -> InterpResult<'tcx, Self>; ) -> InterpResult<'tcx, Self>;
/// Projects to the n-th field. /// Projects to the n-th field.
fn project_field(&self, ecx: &InterpCx<'mir, 'tcx, M>, field: usize) fn project_field(
-> InterpResult<'tcx, Self>; &self,
ecx: &InterpCx<'mir, 'tcx, M>,
field: usize,
) -> InterpResult<'tcx, Self>;
} }
// Operands and memory-places are both values. // Operands and memory-places are both values.

View File

@@ -1198,9 +1198,9 @@ impl<'mir, 'tcx> MutVisitor<'tcx> for ConstPropagator<'mir, 'tcx> {
// This can be `None` if the lhs wasn't const propagated and we just // This can be `None` if the lhs wasn't const propagated and we just
// triggered the assert on the value of the rhs. // triggered the assert on the value of the rhs.
match self.eval_operand(op, source_info) { match self.eval_operand(op, source_info) {
Some(op) => { Some(op) => DbgVal::Val(
DbgVal::Val(self.ecx.read_immediate(&op).unwrap().to_const_int()) self.ecx.read_immediate(&op).unwrap().to_const_int(),
} ),
None => DbgVal::Underscore, None => DbgVal::Underscore,
} }
}; };