Rollup merge of #63229 - RalfJung:miri-error, r=oli-obk
A bit of Miri error cleanup Some cleanup after https://github.com/rust-lang/rust/pull/62969. r? @oli-obk Cc @saleemjaffer
This commit is contained in:
commit
42dfdc5aa5
11 changed files with 90 additions and 98 deletions
|
@ -341,16 +341,16 @@ impl fmt::Debug for InvalidProgramInfo<'tcx> {
|
|||
}
|
||||
|
||||
#[derive(Clone, RustcEncodable, RustcDecodable, HashStable)]
|
||||
pub enum UndefinedBehaviourInfo {
|
||||
pub enum UndefinedBehaviorInfo {
|
||||
/// Handle cases which for which we do not have a fixed variant.
|
||||
Ub(String),
|
||||
/// Unreachable code was executed.
|
||||
Unreachable,
|
||||
}
|
||||
|
||||
impl fmt::Debug for UndefinedBehaviourInfo {
|
||||
impl fmt::Debug for UndefinedBehaviorInfo {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
use UndefinedBehaviourInfo::*;
|
||||
use UndefinedBehaviorInfo::*;
|
||||
match self {
|
||||
Ub(ref msg) =>
|
||||
write!(f, "{}", msg),
|
||||
|
@ -363,7 +363,7 @@ impl fmt::Debug for UndefinedBehaviourInfo {
|
|||
#[derive(Clone, RustcEncodable, RustcDecodable, HashStable)]
|
||||
pub enum UnsupportedOpInfo<'tcx> {
|
||||
/// Handle cases which for which we do not have a fixed variant.
|
||||
Unimplemented(String),
|
||||
Unsupported(String),
|
||||
|
||||
// -- Everything below is not classified yet --
|
||||
FunctionAbiMismatch(Abi, Abi),
|
||||
|
@ -390,20 +390,14 @@ pub enum UnsupportedOpInfo<'tcx> {
|
|||
ReadUndefBytes(Size),
|
||||
DeadLocal,
|
||||
InvalidBoolOp(mir::BinOp),
|
||||
InlineAsm,
|
||||
UnimplementedTraitSelection,
|
||||
CalledClosureAsFunction,
|
||||
NoMirFor(String),
|
||||
/// This variant is used by machines to signal their own errors that do not
|
||||
/// match an existing variant.
|
||||
MachineError(String),
|
||||
DerefFunctionPointer,
|
||||
ExecuteMemory,
|
||||
Intrinsic(String),
|
||||
InvalidChar(u128),
|
||||
OutOfTls,
|
||||
TlsOutOfBounds,
|
||||
AbiViolation(String),
|
||||
AlignmentCheckFailed {
|
||||
required: Align,
|
||||
has: Align,
|
||||
|
@ -513,8 +507,6 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
|
|||
initializer"),
|
||||
AssumptionNotHeld =>
|
||||
write!(f, "`assume` argument was false"),
|
||||
InlineAsm =>
|
||||
write!(f, "miri does not support inline assembly"),
|
||||
ReallocateNonBasePtr =>
|
||||
write!(f, "tried to reallocate with a pointer not to the beginning of an \
|
||||
existing object"),
|
||||
|
@ -537,10 +529,7 @@ impl fmt::Debug for UnsupportedOpInfo<'tcx> {
|
|||
HeapAllocNonPowerOfTwoAlignment(_) =>
|
||||
write!(f, "tried to re-, de-, or allocate heap memory with alignment that is \
|
||||
not a power of two"),
|
||||
MachineError(ref msg) |
|
||||
Unimplemented(ref msg) |
|
||||
AbiViolation(ref msg) |
|
||||
Intrinsic(ref msg) =>
|
||||
Unsupported(ref msg) =>
|
||||
write!(f, "{}", msg),
|
||||
}
|
||||
}
|
||||
|
@ -572,7 +561,7 @@ pub enum InterpError<'tcx> {
|
|||
/// The program panicked.
|
||||
Panic(PanicInfo<u64>),
|
||||
/// The program caused undefined behavior.
|
||||
UndefinedBehaviour(UndefinedBehaviourInfo),
|
||||
UndefinedBehavior(UndefinedBehaviorInfo),
|
||||
/// The program did something the interpreter does not support (some of these *might* be UB
|
||||
/// but the interpreter is not sure).
|
||||
Unsupported(UnsupportedOpInfo<'tcx>),
|
||||
|
@ -603,7 +592,7 @@ impl fmt::Debug for InterpError<'_> {
|
|||
write!(f, "{:?}", msg),
|
||||
InvalidProgram(ref msg) =>
|
||||
write!(f, "{:?}", msg),
|
||||
UndefinedBehaviour(ref msg) =>
|
||||
UndefinedBehavior(ref msg) =>
|
||||
write!(f, "{:?}", msg),
|
||||
ResourceExhaustion(ref msg) =>
|
||||
write!(f, "{:?}", msg),
|
||||
|
|
|
@ -21,8 +21,8 @@ macro_rules! err_inval {
|
|||
#[macro_export]
|
||||
macro_rules! err_ub {
|
||||
($($tt:tt)*) => {
|
||||
$crate::mir::interpret::InterpError::UndefinedBehaviour(
|
||||
$crate::mir::interpret::UndefinedBehaviourInfo::$($tt)*
|
||||
$crate::mir::interpret::InterpError::UndefinedBehavior(
|
||||
$crate::mir::interpret::UndefinedBehaviorInfo::$($tt)*
|
||||
)
|
||||
};
|
||||
}
|
||||
|
@ -50,6 +50,11 @@ macro_rules! throw_unsup {
|
|||
($($tt:tt)*) => { return Err(err_unsup!($($tt)*).into()) };
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! throw_unsup_format {
|
||||
($($tt:tt)*) => { throw_unsup!(Unsupported(format!($($tt)*))) };
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! throw_inval {
|
||||
($($tt:tt)*) => { return Err(err_inval!($($tt)*).into()) };
|
||||
|
@ -60,6 +65,11 @@ macro_rules! throw_ub {
|
|||
($($tt:tt)*) => { return Err(err_ub!($($tt)*).into()) };
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! throw_ub_format {
|
||||
($($tt:tt)*) => { throw_ub!(Ub(format!($($tt)*))) };
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! throw_panic {
|
||||
($($tt:tt)*) => { return Err(err_panic!($($tt)*).into()) };
|
||||
|
@ -78,7 +88,7 @@ mod pointer;
|
|||
pub use self::error::{
|
||||
InterpErrorInfo, InterpResult, InterpError, AssertMessage, ConstEvalErr, struct_error,
|
||||
FrameInfo, ConstEvalRawResult, ConstEvalResult, ErrorHandled, PanicInfo, UnsupportedOpInfo,
|
||||
InvalidProgramInfo, ResourceExhaustionInfo, UndefinedBehaviourInfo,
|
||||
InvalidProgramInfo, ResourceExhaustionInfo, UndefinedBehaviorInfo,
|
||||
};
|
||||
|
||||
pub use self::value::{Scalar, ScalarMaybeUndef, RawConst, ConstValue};
|
||||
|
|
|
@ -181,17 +181,17 @@ fn eval_body_using_ecx<'mir, 'tcx>(
|
|||
Ok(ret)
|
||||
}
|
||||
|
||||
impl<'tcx> Into<InterpErrorInfo<'tcx>> for ConstEvalError {
|
||||
fn into(self) -> InterpErrorInfo<'tcx> {
|
||||
err_unsup!(MachineError(self.to_string())).into()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
enum ConstEvalError {
|
||||
NeedsRfc(String),
|
||||
}
|
||||
|
||||
impl<'tcx> Into<InterpErrorInfo<'tcx>> for ConstEvalError {
|
||||
fn into(self) -> InterpErrorInfo<'tcx> {
|
||||
err_unsup!(Unsupported(self.to_string())).into()
|
||||
}
|
||||
}
|
||||
|
||||
impl fmt::Display for ConstEvalError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
||||
use self::ConstEvalError::*;
|
||||
|
@ -341,7 +341,7 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
|||
debug!("eval_fn_call: {:?}", instance);
|
||||
// Only check non-glue functions
|
||||
if let ty::InstanceDef::Item(def_id) = instance.def {
|
||||
// Execution might have wandered off into other crates, so we cannot to a stability-
|
||||
// Execution might have wandered off into other crates, so we cannot do a stability-
|
||||
// sensitive check here. But we can at least rule out functions that are not const
|
||||
// at all.
|
||||
if !ecx.tcx.is_const_fn_raw(def_id) {
|
||||
|
@ -352,7 +352,7 @@ impl<'mir, 'tcx> interpret::Machine<'mir, 'tcx> for CompileTimeInterpreter<'mir,
|
|||
ecx.goto_block(ret)?; // fully evaluated and done
|
||||
Ok(None)
|
||||
} else {
|
||||
throw_unsup!(MachineError(format!("calling non-const function `{}`", instance)))
|
||||
throw_unsup_format!("calling non-const function `{}`", instance)
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -199,7 +199,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
},
|
||||
|
||||
// Casts to bool are not permitted by rustc, no need to handle them here.
|
||||
_ => throw_unsup!(Unimplemented(format!("int to {:?} cast", dest_layout.ty))),
|
||||
_ => bug!("invalid int to {:?} cast", dest_layout.ty),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -98,11 +98,11 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
let bits = self.read_scalar(args[0])?.to_bits(layout_of.size)?;
|
||||
let kind = match layout_of.abi {
|
||||
ty::layout::Abi::Scalar(ref scalar) => scalar.value,
|
||||
_ => Err(err_unsup!(TypeNotPrimitive(ty)))?,
|
||||
_ => throw_unsup!(TypeNotPrimitive(ty)),
|
||||
};
|
||||
let out_val = if intrinsic_name.ends_with("_nonzero") {
|
||||
if bits == 0 {
|
||||
throw_unsup!(Intrinsic(format!("{} called on 0", intrinsic_name)))
|
||||
throw_ub_format!("`{}` called on 0", intrinsic_name);
|
||||
}
|
||||
numeric_intrinsic(intrinsic_name.trim_end_matches("_nonzero"), bits, kind)?
|
||||
} else {
|
||||
|
@ -187,10 +187,8 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
let (val, overflowed) = self.binary_op(bin_op, l, r)?;
|
||||
if overflowed {
|
||||
let layout = self.layout_of(substs.type_at(0))?;
|
||||
let r_val = r.to_scalar()?.to_bits(layout.size)?;
|
||||
throw_unsup!(
|
||||
Intrinsic(format!("Overflowing shift by {} in {}", r_val, intrinsic_name))
|
||||
)
|
||||
let r_val = r.to_scalar()?.to_bits(layout.size)?;
|
||||
throw_ub_format!("Overflowing shift by {} in `{}`", r_val, intrinsic_name);
|
||||
}
|
||||
self.write_scalar(val, dest)?;
|
||||
}
|
||||
|
|
|
@ -66,9 +66,9 @@ impl<'tcx, Other> FnVal<'tcx, Other> {
|
|||
match self {
|
||||
FnVal::Instance(instance) =>
|
||||
Ok(instance),
|
||||
FnVal::Other(_) => throw_unsup!(MachineError(format!(
|
||||
"Expected instance function pointer, got 'other' pointer"
|
||||
))),
|
||||
FnVal::Other(_) => throw_unsup_format!(
|
||||
"'foreign' function pointers are not supported in this context"
|
||||
),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -834,9 +834,9 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> Memory<'mir, 'tcx, M> {
|
|||
if (src.offset <= dest.offset && src.offset + size > dest.offset) ||
|
||||
(dest.offset <= src.offset && dest.offset + size > src.offset)
|
||||
{
|
||||
throw_unsup!(Intrinsic(
|
||||
"copy_nonoverlapping called on overlapping ranges".to_string(),
|
||||
))
|
||||
throw_ub_format!(
|
||||
"copy_nonoverlapping called on overlapping ranges"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -147,15 +147,12 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
|
||||
// For the remaining ops, the types must be the same on both sides
|
||||
if left_layout.ty != right_layout.ty {
|
||||
let msg = format!(
|
||||
"unimplemented asymmetric binary op {:?}: {:?} ({:?}), {:?} ({:?})",
|
||||
bug!(
|
||||
"invalid asymmetric binary op {:?}: {:?} ({:?}), {:?} ({:?})",
|
||||
bin_op,
|
||||
l,
|
||||
left_layout.ty,
|
||||
r,
|
||||
right_layout.ty
|
||||
);
|
||||
throw_unsup!(Unimplemented(msg))
|
||||
l, left_layout.ty,
|
||||
r, right_layout.ty,
|
||||
)
|
||||
}
|
||||
|
||||
// Operations that need special treatment for signed integers
|
||||
|
@ -243,14 +240,13 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
}
|
||||
|
||||
_ => {
|
||||
let msg = format!(
|
||||
"unimplemented binary op {:?}: {:?}, {:?} (both {:?})",
|
||||
bug!(
|
||||
"invalid binary op {:?}: {:?}, {:?} (both {:?})",
|
||||
bin_op,
|
||||
l,
|
||||
r,
|
||||
right_layout.ty,
|
||||
);
|
||||
throw_unsup!(Unimplemented(msg))
|
||||
)
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
// size of MIR constantly.
|
||||
Nop => {}
|
||||
|
||||
InlineAsm { .. } => throw_unsup!(InlineAsm),
|
||||
InlineAsm { .. } => throw_unsup_format!("inline assembly is not supported"),
|
||||
}
|
||||
|
||||
self.stack[frame_idx].stmt += 1;
|
||||
|
|
|
@ -88,8 +88,7 @@ impl<'mir, 'tcx, M: Machine<'mir, 'tcx>> InterpCx<'mir, 'tcx, M> {
|
|||
(FnVal::Instance(self.resolve(def_id, substs)?), sig.abi())
|
||||
},
|
||||
_ => {
|
||||
let msg = format!("can't handle callee of type {:?}", func.layout.ty);
|
||||
throw_unsup!(Unimplemented(msg))
|
||||
bug!("invalid callee of type {:?}", func.layout.ty)
|
||||
}
|
||||
};
|
||||
let args = self.eval_operands(args)?;
|
||||
|
|
|
@ -260,7 +260,7 @@ impl<'mir, 'tcx> ConstPropagator<'mir, 'tcx> {
|
|||
match diagnostic.error {
|
||||
Exit(_) => bug!("the CTFE program cannot exit"),
|
||||
Unsupported(_)
|
||||
| UndefinedBehaviour(_)
|
||||
| UndefinedBehavior(_)
|
||||
| InvalidProgram(_)
|
||||
| ResourceExhaustion(_) => {
|
||||
// Ignore these errors.
|
||||
|
|
|
@ -4,7 +4,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_U8: u8 = unsafe { intrinsics::unchecked_shl(5_u8, 8) };
|
||||
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 8 in unchecked_shl
|
||||
| Overflowing shift by 8 in `unchecked_shl`
|
||||
|
|
||||
= note: `#[deny(const_err)]` on by default
|
||||
|
||||
|
@ -14,7 +14,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_U16: u16 = unsafe { intrinsics::unchecked_shl(5_u16, 16) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 16 in unchecked_shl
|
||||
| Overflowing shift by 16 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:18:31
|
||||
|
@ -22,7 +22,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_U32: u32 = unsafe { intrinsics::unchecked_shl(5_u32, 32) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 32 in unchecked_shl
|
||||
| Overflowing shift by 32 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:20:31
|
||||
|
@ -30,7 +30,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_U64: u64 = unsafe { intrinsics::unchecked_shl(5_u64, 64) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 64 in unchecked_shl
|
||||
| Overflowing shift by 64 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:22:33
|
||||
|
@ -38,7 +38,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_U128: u128 = unsafe { intrinsics::unchecked_shl(5_u128, 128) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 128 in unchecked_shl
|
||||
| Overflowing shift by 128 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:27:29
|
||||
|
@ -46,7 +46,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I8: i8 = unsafe { intrinsics::unchecked_shl(5_i8, 8) };
|
||||
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 8 in unchecked_shl
|
||||
| Overflowing shift by 8 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:29:31
|
||||
|
@ -54,7 +54,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I16: i16 = unsafe { intrinsics::unchecked_shl(5_16, 16) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 16 in unchecked_shl
|
||||
| Overflowing shift by 16 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:31:31
|
||||
|
@ -62,7 +62,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I32: i32 = unsafe { intrinsics::unchecked_shl(5_i32, 32) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 32 in unchecked_shl
|
||||
| Overflowing shift by 32 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:33:31
|
||||
|
@ -70,7 +70,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I64: i64 = unsafe { intrinsics::unchecked_shl(5_i64, 64) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 64 in unchecked_shl
|
||||
| Overflowing shift by 64 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:35:33
|
||||
|
@ -78,7 +78,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I128: i128 = unsafe { intrinsics::unchecked_shl(5_i128, 128) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 128 in unchecked_shl
|
||||
| Overflowing shift by 128 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:40:33
|
||||
|
@ -86,7 +86,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I8_NEG: i8 = unsafe { intrinsics::unchecked_shl(5_i8, -1) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 255 in unchecked_shl
|
||||
| Overflowing shift by 255 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:42:35
|
||||
|
@ -94,7 +94,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I16_NEG: i16 = unsafe { intrinsics::unchecked_shl(5_16, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 65535 in unchecked_shl
|
||||
| Overflowing shift by 65535 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:44:35
|
||||
|
@ -102,7 +102,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I32_NEG: i32 = unsafe { intrinsics::unchecked_shl(5_i32, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 4294967295 in unchecked_shl
|
||||
| Overflowing shift by 4294967295 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:46:35
|
||||
|
@ -110,7 +110,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I64_NEG: i64 = unsafe { intrinsics::unchecked_shl(5_i64, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 18446744073709551615 in unchecked_shl
|
||||
| Overflowing shift by 18446744073709551615 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:48:37
|
||||
|
@ -118,7 +118,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I128_NEG: i128 = unsafe { intrinsics::unchecked_shl(5_i128, -1) };
|
||||
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 340282366920938463463374607431768211455 in unchecked_shl
|
||||
| Overflowing shift by 340282366920938463463374607431768211455 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:54:40
|
||||
|
@ -126,7 +126,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I8_NEG_RANDOM: i8 = unsafe { intrinsics::unchecked_shl(5_i8, -6) };
|
||||
| ---------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 250 in unchecked_shl
|
||||
| Overflowing shift by 250 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:56:42
|
||||
|
@ -134,7 +134,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I16_NEG_RANDOM: i16 = unsafe { intrinsics::unchecked_shl(5_16, -13) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 65523 in unchecked_shl
|
||||
| Overflowing shift by 65523 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:58:42
|
||||
|
@ -142,7 +142,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I32_NEG_RANDOM: i32 = unsafe { intrinsics::unchecked_shl(5_i32, -25) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 4294967271 in unchecked_shl
|
||||
| Overflowing shift by 4294967271 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:60:42
|
||||
|
@ -150,7 +150,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I64_NEG_RANDOM: i64 = unsafe { intrinsics::unchecked_shl(5_i64, -30) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 18446744073709551586 in unchecked_shl
|
||||
| Overflowing shift by 18446744073709551586 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:62:44
|
||||
|
@ -158,7 +158,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHL_I128_NEG_RANDOM: i128 = unsafe { intrinsics::unchecked_shl(5_i128, -93) };
|
||||
| -------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 340282366920938463463374607431768211363 in unchecked_shl
|
||||
| Overflowing shift by 340282366920938463463374607431768211363 in `unchecked_shl`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:69:29
|
||||
|
@ -166,7 +166,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_U8: u8 = unsafe { intrinsics::unchecked_shr(5_u8, 8) };
|
||||
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 8 in unchecked_shr
|
||||
| Overflowing shift by 8 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:71:31
|
||||
|
@ -174,7 +174,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_U16: u16 = unsafe { intrinsics::unchecked_shr(5_u16, 16) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 16 in unchecked_shr
|
||||
| Overflowing shift by 16 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:73:31
|
||||
|
@ -182,7 +182,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_U32: u32 = unsafe { intrinsics::unchecked_shr(5_u32, 32) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 32 in unchecked_shr
|
||||
| Overflowing shift by 32 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:75:31
|
||||
|
@ -190,7 +190,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_U64: u64 = unsafe { intrinsics::unchecked_shr(5_u64, 64) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 64 in unchecked_shr
|
||||
| Overflowing shift by 64 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:77:33
|
||||
|
@ -198,7 +198,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_U128: u128 = unsafe { intrinsics::unchecked_shr(5_u128, 128) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 128 in unchecked_shr
|
||||
| Overflowing shift by 128 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:82:29
|
||||
|
@ -206,7 +206,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I8: i8 = unsafe { intrinsics::unchecked_shr(5_i8, 8) };
|
||||
| ----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 8 in unchecked_shr
|
||||
| Overflowing shift by 8 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:84:31
|
||||
|
@ -214,7 +214,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I16: i16 = unsafe { intrinsics::unchecked_shr(5_16, 16) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 16 in unchecked_shr
|
||||
| Overflowing shift by 16 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:86:31
|
||||
|
@ -222,7 +222,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I32: i32 = unsafe { intrinsics::unchecked_shr(5_i32, 32) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 32 in unchecked_shr
|
||||
| Overflowing shift by 32 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:88:31
|
||||
|
@ -230,7 +230,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I64: i64 = unsafe { intrinsics::unchecked_shr(5_i64, 64) };
|
||||
| ------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 64 in unchecked_shr
|
||||
| Overflowing shift by 64 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:90:33
|
||||
|
@ -238,7 +238,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I128: i128 = unsafe { intrinsics::unchecked_shr(5_i128, 128) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 128 in unchecked_shr
|
||||
| Overflowing shift by 128 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:95:33
|
||||
|
@ -246,7 +246,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I8_NEG: i8 = unsafe { intrinsics::unchecked_shr(5_i8, -1) };
|
||||
| --------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 255 in unchecked_shr
|
||||
| Overflowing shift by 255 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:97:35
|
||||
|
@ -254,7 +254,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I16_NEG: i16 = unsafe { intrinsics::unchecked_shr(5_16, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 65535 in unchecked_shr
|
||||
| Overflowing shift by 65535 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:99:35
|
||||
|
@ -262,7 +262,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I32_NEG: i32 = unsafe { intrinsics::unchecked_shr(5_i32, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 4294967295 in unchecked_shr
|
||||
| Overflowing shift by 4294967295 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:101:35
|
||||
|
@ -270,7 +270,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I64_NEG: i64 = unsafe { intrinsics::unchecked_shr(5_i64, -1) };
|
||||
| ----------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 18446744073709551615 in unchecked_shr
|
||||
| Overflowing shift by 18446744073709551615 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:103:37
|
||||
|
@ -278,7 +278,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I128_NEG: i128 = unsafe { intrinsics::unchecked_shr(5_i128, -1) };
|
||||
| ------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 340282366920938463463374607431768211455 in unchecked_shr
|
||||
| Overflowing shift by 340282366920938463463374607431768211455 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:109:40
|
||||
|
@ -286,7 +286,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I8_NEG_RANDOM: i8 = unsafe { intrinsics::unchecked_shr(5_i8, -6) };
|
||||
| ---------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 250 in unchecked_shr
|
||||
| Overflowing shift by 250 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:111:42
|
||||
|
@ -294,7 +294,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I16_NEG_RANDOM: i16 = unsafe { intrinsics::unchecked_shr(5_16, -13) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 65523 in unchecked_shr
|
||||
| Overflowing shift by 65523 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:113:42
|
||||
|
@ -302,7 +302,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I32_NEG_RANDOM: i32 = unsafe { intrinsics::unchecked_shr(5_i32, -25) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 4294967271 in unchecked_shr
|
||||
| Overflowing shift by 4294967271 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:115:42
|
||||
|
@ -310,7 +310,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I64_NEG_RANDOM: i64 = unsafe { intrinsics::unchecked_shr(5_i64, -30) };
|
||||
| -----------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 18446744073709551586 in unchecked_shr
|
||||
| Overflowing shift by 18446744073709551586 in `unchecked_shr`
|
||||
|
||||
error: any use of this value will cause an error
|
||||
--> $DIR/const-int-unchecked.rs:117:44
|
||||
|
@ -318,7 +318,7 @@ error: any use of this value will cause an error
|
|||
LL | const SHR_I128_NEG_RANDOM: i128 = unsafe { intrinsics::unchecked_shr(5_i128, -93) };
|
||||
| -------------------------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^---
|
||||
| |
|
||||
| Overflowing shift by 340282366920938463463374607431768211363 in unchecked_shr
|
||||
| Overflowing shift by 340282366920938463463374607431768211363 in `unchecked_shr`
|
||||
|
||||
error: aborting due to 40 previous errors
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue