You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is miri test run-pass/ptr_arith_offset_overflow.rs
fnmain(){let v = [1i16,2];let x = &v[1]as*consti16;// Adding 2*isize::max and then 1 is like substracting 1let x = x.wrapping_offset(isize::max_value());let x = x.wrapping_offset(isize::max_value());let x = x.wrapping_offset(1);assert_eq!(unsafe{*x },1);}
backtrace
thread 'main' panicked at 'Size::from_bytes: 18446744073709551614 bytes in bits doesn't fit in u64', librustc_target/abi/mod.rs:237:13
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at libstd/sys_common/backtrace.rs:71
at libstd/sys_common/backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
at libstd/panicking.rs:211
3: std::panicking::default_hook
at libstd/panicking.rs:227
4: rustc::util::common::panic_hook
5: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:467
6: std::panicking::begin_panic_fmt
at libstd/panicking.rs:350
7: rustc_target::abi::Size::from_bytes
8: rustc::mir::interpret::MemoryPointer::wrapping_signed_offset
at /checkout/src/librustc/mir/interpret/mod.rs:123
9: rustc::mir::interpret::value::Pointer::wrapping_signed_offset
at /checkout/src/librustc/mir/interpret/value.rs:155
10: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, miri::Evaluator<'tcx>> as miri::helpers::EvalContextExt<'tcx>>::wrapping_pointer_offset
at src/helpers.rs:54
11: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, miri::Evaluator<'tcx>> as miri::intrinsic::EvalContextExt<'tcx>>::call_intrinsic
at src/intrinsic.rs:75
12: <miri::Evaluator<'tcx> as rustc_mir::interpret::machine::Machine<'mir, 'tcx>>::call_intrinsic
at src/lib.rs:254
13: rustc_mir::interpret::terminator::<impl rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::eval_fn_call
at /checkout/src/librustc_mir/interpret/terminator/mod.rs:268
14: rustc_mir::interpret::terminator::<impl rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::eval_terminator
at /checkout/src/librustc_mir/interpret/terminator/mod.rs:106
15: rustc_mir::interpret::step::<impl rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::terminator
at /checkout/src/librustc_mir/interpret/step.rs:109
16: rustc_mir::interpret::step::<impl rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::step
at /checkout/src/librustc_mir/interpret/step.rs:43
17: miri::eval_main::run_main
at src/lib.rs:157
18: miri::eval_main
at src/lib.rs:170
19: miri::after_analysis
at src/bin/miri.rs:147
20: <miri::MiriCompilerCalls as rustc_driver::CompilerCalls<'a>>::build_controller::{{closure}}
at src/bin/miri.rs:88
21: rustc_driver::driver::compile_input::{{closure}}
22: rustc::ty::context::tls::enter_context
23: <std::thread::local::LocalKey<T>>::with
24: rustc::ty::context::TyCtxt::create_and_enter
25: rustc_driver::driver::compile_input
26: rustc_driver::run_compiler_with_pool
27: syntax::with_globals
28: rustc_driver::run_compiler
29: miri::main
at src/bin/miri.rs:237
30: std::rt::lang_start::{{closure}}
at /checkout/src/libstd/rt.rs:74
31: std::panicking::try::do_call
at libstd/rt.rs:59
at libstd/panicking.rs:310
32: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:105
33: std::rt::lang_start_internal
at libstd/panicking.rs:289
at libstd/panic.rs:374
at libstd/rt.rs:58
34: std::rt::lang_start
at /checkout/src/libstd/rt.rs:74
35: main
36: __libc_start_main
37: _start
query stack during panic:
end of query stack
The text was updated successfully, but these errors were encountered:
Allow `Size` to be any valid `u64`
cc rust-lang/miri#378 (comment)
The alternative is to make mir::interpret's pointer offsets not be `Size`
fixes#50917
r? @eddyb
This is miri test
run-pass/ptr_arith_offset_overflow.rs
backtrace
The text was updated successfully, but these errors were encountered: