diff --git a/miri/fn_call.rs b/miri/fn_call.rs index 2ffd10b9d0ad..8b07b577bdda 100644 --- a/miri/fn_call.rs +++ b/miri/fn_call.rs @@ -317,7 +317,8 @@ fn call_c_abi( } "sysconf" => { - let name = self.value_to_primval(args[0], usize)?.to_u64()?; + let c_int = self.operand_ty(&arg_operands[0]); + let name = self.value_to_primval(args[0], c_int)?.to_u64()?; trace!("sysconf() called with name {}", name); // cache the sysconf integers via miri's global cache let paths = &[ @@ -330,7 +331,7 @@ fn call_c_abi( let cid = GlobalId { instance, promoted: None }; // compute global if not cached let val = match self.globals.get(&cid).cloned() { - Some(ptr) => self.value_to_primval(Value::ByRef(ptr), usize)?.to_u64()?, + Some(ptr) => self.value_to_primval(Value::ByRef(ptr), c_int)?.to_u64()?, None => eval_body_as_primval(self.tcx, instance)?.0.to_u64()?, }; if val == name {