Promotion of const generic parameters causes the compiler to crash.
#![feature(const_generics)]
fn promote<const N: i32>() {
// works:
//
// let n = N;
// &n;
&N;
}
fn main() {
promote::<0>();
}
$ RUST_BACKTRACE=1 rustc +nightly promotion_const_generics_ice.rs
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
--> promotion_const_generics_ice.rs:1:12
|
1 | #![feature(const_generics)]
| ^^^^^^^^^^^^^^
thread 'rustc' panicked at 'assertion failed: key.value.promoted.is_none()', src/librustc_mir/const_eval.rs:577:17
stack backtrace:
0: backtrace::backtrace::libunwind::trace
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.25/src/backtrace/libunwind.rs:97
1: backtrace::backtrace::trace_unsynchronized
at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.25/src/backtrace/mod.rs:66
2: std::sys_common::backtrace::_print
at src/libstd/sys_common/backtrace.rs:47
3: std::sys_common::backtrace::print
at src/libstd/sys_common/backtrace.rs:36
4: std::panicking::default_hook::{{closure}}
at src/libstd/panicking.rs:197
5: std::panicking::default_hook
at src/libstd/panicking.rs:211
6: rustc::util::common::panic_hook
7: std::panicking::rust_panic_with_hook
at src/libstd/panicking.rs:478
8: std::panicking::begin_panic
9: rustc_mir::const_eval::const_eval_provider
10: rustc::ty::query::__query_compute::const_eval
11: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval>::compute
12: rustc::dep_graph::graph::DepGraph::with_task_impl
13: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
14: rustc_mir::monomorphize::collector::collect_items_rec
15: rustc_mir::monomorphize::collector::collect_items_rec
16: rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}
17: rustc::util::common::time
18: rustc_mir::monomorphize::collector::collect_crate_mono_items
19: rustc::util::common::time
20: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
21: rustc::ty::query::__query_compute::collect_and_partition_mono_items
22: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_and_partition_mono_items>::compute
23: rustc::dep_graph::graph::DepGraph::with_task_impl
24: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
25: rustc_codegen_ssa::base::codegen_crate
26: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_utils::codegen_backend::CodegenBackend>::codegen_crate
27: rustc::util::common::time
28: rustc_interface::passes::start_codegen
29: rustc::ty::context::tls::enter_global
30: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
31: rustc_interface::passes::create_global_ctxt::{{closure}}
32: rustc_interface::passes::BoxedGlobalCtxt::enter
33: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::ongoing_codegen
34: rustc_interface::interface::run_compiler_in_existing_thread_pool
35: std::thread::local::LocalKey<T>::with
36: scoped_tls::ScopedKey<T>::set
37: syntax::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
query stack during panic:
#0 [const_eval] const-evaluating + checking `promote`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.37.0-nightly (7840a0b75 2019-05-31) running on x86_64-unknown-linux-gnu
This is happening here:
https://github.com/rust-lang/rust/blob/73b67c255a113fd0f94e00eb51be2f1eb11ce39a/src/librustc_mir/const_eval.rs#L572-L576
cc @oli-obk
So what is the expected behavior here?
@varkor why shouldn't we? Like ok, we shouldn't right now, but why shouldn't ever? We are already promoting &std::mem::size_of::<T>() which seems just as problematic. This is just a limitation of the miri engine, that I wager will be simple to solve. Especially when looking at where this is happening (in the collector). Everything is monomorphic at that point I believe?
Ah, that is true. It should be okay, you're right.
Ok, awesome, I was worried for a bit that we screwed up promotion. Now let's figure out what's going wrong here.
As far as I can tell, the only way to get to a TooGeneric is by substituting and ending up with an unsubstituted (needs_subst) value. Our substitution machinery is a little whacky as clippy has already encountered, but if size_of calls can get promoted, I don't know why const generics would go down a different path. We'll need to run the repro from this issue through a rustc with RUSTC_LOG=rustc_mir::interpret,rustc::mir::interpret RUST_CTFE_BACKTRACE=immediate to get some detailed info on those errors.
This also happens when passing a const generic variable (directly) to println! and friends.
:rofl: uh, so, I found this
Basically the fix is to call self.monomorphize on constant.literal in https://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/operand.rs#L497 and turn the return in
https://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/operand.rs#L526 into a bug! call
This change is blocked on the eval_context.rs changes from https://github.com/rust-lang/rust/pull/62012
Making this change:
- Constant(ref constant) => self.eval_const_to_op(constant.literal, layout)?,
+ Constant(ref constant) => {
+ self.eval_const_to_op(self.monomorphize(constant.literal)?, layout)?
+ }
results in:
error: internal compiler error: src/librustc/ty/subst.rs:557: type parameter `Self/#0` (Self/0) out of range when substituting (root type=Some(<Self as float::Float>::Int)) substs=[]
while compiling rustc.
thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:578:9
stack backtrace:
0: std::sys_common::backtrace::print
1: std::panicking::default_hook::{{closure}}
2: std::panicking::default_hook
3: rustc::util::common::panic_hook
4: std::panicking::rust_panic_with_hook
5: std::panicking::begin_panic
6: rustc_errors::Handler::span_bug
7: rustc::util::bug::opt_span_bug_fmt::{{closure}}
8: rustc::ty::context::tls::with_opt::{{closure}}
9: rustc::ty::context::tls::with_context_opt
10: rustc::ty::context::tls::with_opt
11: rustc::util::bug::opt_span_bug_fmt
12: rustc::util::bug::span_bug_fmt
13: <rustc::ty::subst::SubstFolder as rustc::ty::fold::TypeFolder>::fold_ty
14: <smallvec::SmallVec<A> as core::iter::traits::collect::FromIterator<<A as smallvec::Array>::Item>>::from_iter
15: rustc::ty::fold::TypeFoldable::fold_with
16: rustc::ty::structural_impls::<impl rustc::ty::fold::TypeFoldable for &rustc::ty::TyS>::super_fold_with
17: <rustc::ty::subst::SubstFolder as rustc::ty::fold::TypeFolder>::fold_ty
18: <rustc::ty::subst::SubstFolder as rustc::ty::fold::TypeFolder>::fold_const
19: rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpretCx<M>>::eval_operand
20: rustc_mir::interpret::step::<impl rustc_mir::interpret::eval_context::InterpretCx<M>>::run
21: rustc_mir::const_eval::eval_body_using_ecx
22: rustc_mir::const_eval::const_eval_raw_provider
23: rustc::ty::query::__query_compute::const_eval_raw
24: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval_raw>::compute
25: rustc::dep_graph::graph::DepGraph::with_task_impl
26: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
27: rustc_mir::const_eval::const_eval_provider
28: rustc::ty::query::__query_compute::const_eval
29: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval>::compute
30: rustc::dep_graph::graph::DepGraph::with_task_impl
31: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
32: rustc_mir::const_eval::const_eval_provider
33: rustc::ty::query::__query_compute::const_eval
34: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::const_eval>::compute
35: rustc::dep_graph::graph::DepGraph::with_task_impl
36: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
37: rustc_mir::monomorphize::collector::collect_const
38: rustc::mir::visit::Visitor::super_rvalue
39: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc::mir::visit::Visitor>::visit_rvalue
40: rustc::mir::visit::Visitor::visit_body
41: rustc_mir::monomorphize::collector::collect_items_rec
42: rustc_mir::monomorphize::collector::collect_items_rec
43: rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}
44: rustc::util::common::time
45: rustc_mir::monomorphize::collector::collect_crate_mono_items
46: rustc::util::common::time
47: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
48: rustc::ty::query::__query_compute::collect_and_partition_mono_items
49: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_and_partition_mono_items>::compute
50: rustc::dep_graph::graph::DepGraph::with_task_impl
51: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
52: rustc_codegen_ssa::base::codegen_crate
53: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_utils::codegen_backend::CodegenBackend>::codegen_crate
54: rustc::util::common::time
55: rustc_interface::passes::start_codegen
56: rustc::ty::context::tls::enter_global
57: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}
58: rustc_interface::passes::create_global_ctxt::{{closure}}
59: rustc_interface::passes::BoxedGlobalCtxt::enter
60: rustc_interface::queries::Query<T>::compute
61: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::ongoing_codegen
62: rustc_interface::interface::run_compiler_in_existing_thread_pool
63: std::thread::local::LocalKey<T>::with
64: scoped_tls::ScopedKey<T>::set
65: syntax::with_globals
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
query stack during panic:
#0 [const_eval_raw] const-evaluating `<f32 as float::Float>::EXPONENT_MASK`
#1 [const_eval] const-evaluating + checking `<f32 as float::Float>::EXPONENT_MASK`
#2 [const_eval] const-evaluating + checking `<f32 as float::Float>::EXPONENT_MASK`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: aborting due to previous error
(I haven't looked into the error yet.)
heh, one can always trust in libapfloat to expose const eval bugs
can you run with RUSTC_LOG=rustc_mir::interpret and dump that log, too? It looks to me like the instance field of the Frame has the wrong Substs
@oli-obk FWIW I got this log.
ah, unfortunately the rustc you're using is built without debug flags, so we're only getting INFO level logs.
Oops. If no one has posted yet, I'll paste later.
Here's the lower section. I can post more if this doesn't contain all the relevant information, but the full trace is long.
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: generate stacktrace: [
FrameInfo {
call_site: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/shift.rs:55:5: 70:6,
instance: Instance {
def: Item(
DefId(0:175 ~ compiler_builtins[ef6f]::int[0]::shift[0]::Lshr[0]::lshr[0]),
),
substs: [
Self,
],
},
lint_root: None,
},
], None
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/mod.rs:82:1: 87:2: num_bbs: 7
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) int::unwrap::<T>
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/float/cmp.rs:6:10: 6:15: num_bbs: 2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <float::cmp::Result as rustc_std_workspace_core::clone::Clone>::clone
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/float/conv.rs:157:10: 157:19: num_bbs: 7
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <float::conv::Sign as rustc_std_workspace_core::cmp::PartialEq>::eq
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGNIFICAND_BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGN_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:315 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::BITS[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 32u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 297: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 32u32: Immediate(Scalar(0x00000020))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(297).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000020): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 297: 20 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 297: 20 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::BITS
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(297).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000020) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x0000001f) (u32)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGNIFICAND_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:316 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::SIGNIFICAND_BITS[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGNIFICAND_BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 23u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 298: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 23u32: Immediate(Scalar(0x00000017))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000017): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 298: 17 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 298: 17 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::SIGNIFICAND_BITS
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(298).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x00000017) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00800000) (u32), Scalar(0x00000001) (u32)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::IMPLICIT_BIT
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x00000017) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::EXPONENT_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:95 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_MASK[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:318 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::SIGNIFICAND_MASK[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGNIFICAND_MASK
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedShl(const 1u32, const <f32 as float::Float>::SIGNIFICAND_BITS)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <f32 as float::Float>::SIGNIFICAND_BITS: Indirect(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x00000017) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x00800000, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x00800000, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to shift left with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u32): Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x00800000): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x00800000
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedSub(move _1, const 1u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00800000) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x007fffff, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x007fffff, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to subtract with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 299: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x007fffff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u32): Immediate(Scalar(0x007fffff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(299).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x007fffff): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 299: ff ff 7f 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 299: ff ff 7f 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::SIGNIFICAND_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(299).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:94 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGN_MASK[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:317 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::SIGN_MASK[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::SIGN_MASK
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedSub(const <f32 as float::Float>::BITS, const 1u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <f32 as float::Float>::BITS: Indirect(MemPlace { ptr: AllocId(297).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000020) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x0000001f, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x0000001f, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to subtract with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0000001f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u32): Immediate(Scalar(0x0000001f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x0000001f): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x0000001f
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedShl(const 1u32, move _1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0000001f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x0000001f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x0000001f) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x80000000, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x80000000, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to shift left with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 300: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x80000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u32): Immediate(Scalar(0x80000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(300).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x80000000): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 300: 00 00 00 80 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 300: 00 00 00 80 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::SIGN_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(300).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op BitOr: Scalar(0x80000000) (u32), Scalar(0x007fffff) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:94 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGN_MASK[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:95 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_MASK[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running unary op Not: 0x807fffff (u32)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGNIFICAND_BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGN_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:331 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[1]::BITS[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 64u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 301: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 64u32: Immediate(Scalar(0x00000040))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(301).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000040): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 301: 40 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 301: 40 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f64 as float::Float>::BITS
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(301).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000040) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x0000000000000001) (u64), Scalar(0x0000003f) (u32)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGNIFICAND_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:332 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[1]::SIGNIFICAND_BITS[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGNIFICAND_BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 52u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 302: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 52u32: Immediate(Scalar(0x00000034))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(302).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000034): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 302: 34 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 302: 34 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f64 as float::Float>::SIGNIFICAND_BITS
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(302).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x0000000000000001) (u64), Scalar(0x00000034) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x0010000000000000) (u64), Scalar(0x0000000000000001) (u64)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::IMPLICIT_BIT
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x0000000000000001) (u64), Scalar(0x00000034) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::EXPONENT_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:95 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_MASK[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:334 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[1]::SIGNIFICAND_MASK[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGNIFICAND_MASK
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedShl(const 1u64, const <f64 as float::Float>::SIGNIFICAND_BITS)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u64: Immediate(Scalar(0x0000000000000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <f64 as float::Float>::SIGNIFICAND_BITS: Indirect(MemPlace { ptr: AllocId(302).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x0000000000000001) (u64), Scalar(0x00000034) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x0010000000000000, 0x00): (u64, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x0010000000000000, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to shift left with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0010000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u64): Immediate(Scalar(0x0010000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x0010000000000000): u64
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x0010000000000000
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedSub(move _1, const 1u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0010000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x0010000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u64: Immediate(Scalar(0x0000000000000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x0010000000000000) (u64), Scalar(0x0000000000000001) (u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x000fffffffffffff, 0x00): (u64, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x000fffffffffffff, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to subtract with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 303: __ __ __ __ __ __ __ __ (8 bytes, alignment 8) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x000fffffffffffff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u64): Immediate(Scalar(0x000fffffffffffff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(303).0x0, align: Align { pow2: 3 }, meta: None }) <- Scalar(0x000fffffffffffff): u64
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 303: ff ff ff ff ff ff 0f 00 (8 bytes, alignment 8) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 303: ff ff ff ff ff ff 0f 00 (8 bytes, alignment 8) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f64 as float::Float>::SIGNIFICAND_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(303).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u64
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:94 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGN_MASK[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:333 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[1]::SIGN_MASK[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f64 as float::Float>::SIGN_MASK
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedSub(const <f64 as float::Float>::BITS, const 1u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <f64 as float::Float>::BITS: Indirect(MemPlace { ptr: AllocId(301).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000040) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x0000003f, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x0000003f, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to subtract with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0000003f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u32): Immediate(Scalar(0x0000003f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x0000003f): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x0000003f
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedShl(const 1u64, move _1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u64: Immediate(Scalar(0x0000000000000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x0000003f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x0000003f))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x0000000000000001) (u64), Scalar(0x0000003f) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x8000000000000000, 0x00): (u64, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x8000000000000000, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to shift left with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 304: __ __ __ __ __ __ __ __ (8 bytes, alignment 8) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x8000000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u64): Immediate(Scalar(0x8000000000000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(304).0x0, align: Align { pow2: 3 }, meta: None }) <- Scalar(0x8000000000000000): u64
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 304: 00 00 00 00 00 00 00 80 (8 bytes, alignment 8) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(8) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 304: 00 00 00 00 00 00 00 80 (8 bytes, alignment 8) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f64 as float::Float>::SIGN_MASK
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(304).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u64
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op BitOr: Scalar(0x8000000000000000) (u64), Scalar(0x000fffffffffffff) (u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:94 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGN_MASK[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:95 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_MASK[0]), [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f64,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running unary op Not: 0x800fffffffffffff (u64)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/sdiv.rs:94:26: 94:47: num_bbs: 3
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) int::sdiv::__divmodsi4::{{closure}}#0
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/int/sdiv.rs:99:26: 99:47: num_bbs: 3
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) int::sdiv::__divmoddi4::{{closure}}#0
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u32 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u32 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u32 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i32 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i32 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i32 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u64 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u64 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u64 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i64 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i64 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i64 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u128 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u128 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u128 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i128 as int::Int>::BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i128 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <i128 as int::Int>::ONE
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/mem.rs:9:1: 16:2: num_bbs: 7
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) mem::memcpy
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/mem.rs:19:1: 36:2: num_bbs: 15
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) mem::memmove
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/mem.rs:39:1: 46:2: num_bbs: 6
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) mem::memset
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/mem.rs:49:1: 60:2: num_bbs: 10
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) mem::memcmp
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/probestack.rs:49:1: 95:2: num_bbs: 2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) probestack::__rust_probestack
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: push_stack_frame: /Users/varkor/.cargo/registry/src/github.com-1ecc6299db9ec823/compiler_builtins-0.1.16/src/macros.rs:253:9: 255:10: num_bbs: 3
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) float::add::__addsf3
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:410 ~ compiler_builtins[ef6f]::int[0]::{{impl}}[0]::ONE[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u32 as int::Int>::ONE
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 1u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 305: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(305).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000001): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 305: 01 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 305: 01 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <u32 as int::Int>::ONE
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(305).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(305).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(305).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:409 ~ compiler_builtins[ef6f]::int[0]::{{impl}}[0]::ZERO[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <u32 as int::Int>::ZERO
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = const 0u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 306: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 0u32: Immediate(Scalar(0x00000000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(306).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000000): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 306: 00 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 306: 00 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <u32 as int::Int>::ZERO
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(306).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(306).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(306).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(297).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(297).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:92 ~ compiler_builtins[ef6f]::float[0]::Float[0]::EXPONENT_MAX[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::EXPONENT_MAX
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedShl(const 1u32, const <Self as float::Float>::EXPONENT_BITS)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:91 ~ compiler_builtins[ef6f]::float[0]::Float[0]::EXPONENT_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:91 ~ compiler_builtins[ef6f]::float[0]::Float[0]::EXPONENT_BITS[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::EXPONENT_BITS
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _2 = CheckedSub(const <Self as float::Float>::BITS, const <Self as float::Float>::SIGNIFICAND_BITS)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:89 ~ compiler_builtins[ef6f]::float[0]::Float[0]::BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <Self as float::Float>::BITS: Indirect(MemPlace { ptr: AllocId(297).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <Self as float::Float>::SIGNIFICAND_BITS: Indirect(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000020) (u32), Scalar(0x00000017) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x00000009, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x00000009, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to subtract with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00000009))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u32): Immediate(Scalar(0x00000009))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x00000009): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x00000009
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedSub(move _1, const 1u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00000009))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x00000009))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000009) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x00000008, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x00000008, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to subtract with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 308: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00000008))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u32): Immediate(Scalar(0x00000008))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(308).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00000008): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 308: 08 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 308: 08 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::EXPONENT_BITS
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(308).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <Self as float::Float>::EXPONENT_BITS: Indirect(MemPlace { ptr: AllocId(308).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x00000008) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _2 } <- ScalarPair(0x00000100, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _2: (0x00000100, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_2.1: bool), "attempt to shift left with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = move (_2.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00000100))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_2.0: u32): Immediate(Scalar(0x00000100))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- Scalar(0x00000100): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: 0x00000100
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _3 = CheckedSub(move _1, const 1u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00000100))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move _1: Immediate(Scalar(0x00000100))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Sub: Scalar(0x00000100) (u32), Scalar(0x00000001) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _3 } <- ScalarPair(0x000000ff, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _3: (0x000000ff, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_3.1: bool), "attempt to subtract with overflow") -> bb2
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb2
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_3.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 307: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x000000ff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_3.0: u32): Immediate(Scalar(0x000000ff))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(307).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x000000ff): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 307: ff 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 307: ff 00 00 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::EXPONENT_MAX
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(307).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(307).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(307).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:319 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::IMPLICIT_BIT[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::IMPLICIT_BIT
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = CheckedShl(const 1u32, const <f32 as float::Float>::SIGNIFICAND_BITS)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const 1u32: Immediate(Scalar(0x00000001))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: resolve: DefId(0:90 ~ compiler_builtins[ef6f]::float[0]::Float[0]::SIGNIFICAND_BITS[0]), [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: param_env: ParamEnv {
caller_bounds: [],
reveal: UserFacing,
def_id: None,
}
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: substs: [
f32,
]
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: const <f32 as float::Float>::SIGNIFICAND_BITS: Indirect(MemPlace { ptr: AllocId(298).0x0, align: Align { pow2: 2 }, meta: None })
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operator: Running binary op Shl: Scalar(0x00000001) (u32), Scalar(0x00000017) (u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Local { frame: 0, local: _1 } <- ScalarPair(0x00800000, 0x00): (u32, bool)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: (0x00800000, 0x00)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: assert(!move (_1.1: bool), "attempt to shift left with overflow") -> bb1
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_1.1: bool): Immediate(Scalar(0x00))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: // bb1
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _0 = move (_1.0: u32)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 309: __ __ __ __ (4 bytes, alignment 4) (stack)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: eval_place_to_op: got Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::operand: move (_1.0: u32): Immediate(Scalar(0x00800000))
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::place: write_immediate: Ptr(MemPlace { ptr: AllocId(309).0x0, align: Align { pow2: 2 }, meta: None }) <- Scalar(0x00800000): u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 309: 00 00 80 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: return
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: by align(4) ref:
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::memory: Alloc 309: 00 00 80 00 (4 bytes, alignment 4) (stack)
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: LEAVING(0) <f32 as float::Float>::IMPLICIT_BIT
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::intern: InternVisitor::intern AllocId(309).0x0 with Immutable
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(309).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(309).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(299).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(299).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: validate_operand: Indirect(MemPlace { ptr: AllocId(300).0x0, align: Align { pow2: 2 }, meta: None }), u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::validity: visit_value: Indirect(MemPlace { ptr: AllocId(300).0x0, align: Align { pow2: 2 }, meta: None }), TyLayout { ty: u32, details: LayoutDetails { variants: Single { index: 0 }, fields: Union(0), abi: Scalar(Scalar { value: Int(I32, false), valid_range: 0..=4294967295 }), align: AbiAndPrefAlign { abi: Align { pow2: 2 }, pref: Align { pow2: 2 } }, size: Size { raw: 4 } } }
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::visitor: walk_value: type: u32
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: load mir Item(DefId(0:320 ~ compiler_builtins[ef6f]::float[0]::{{impl}}[0]::EXPONENT_MASK[0]))
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: ENTERING(0) <f32 as float::Float>::EXPONENT_MASK
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: StorageLive(_1)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1 is now live
INFO 2019-06-25T09:37:20Z: rustc_mir::interpret::step: _1 = BitOr(const <f32 as float::Float>::SIGN_MASK, const <f32 as float::Float>::SIGNIFICAND_MASK)
TRACE 2019-06-25T09:37:20Z: rustc_mir::interpret::eval_context: _1: is uninitialized
error: internal compiler error: src/librustc/ty/subst.rs:557: type parameter `Self/#0` (Self/0) out of range when substituting (root type=Some(<Self as float::Float>::Int)) substs=[]
try dumping the stackframe size, the instance, t and substs in https://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/eval_context.rs#L338 We have [] as substs, but it should be [f32], maybe we're looking at the wrong thing
@JohnTitor: you're welcome to take this issue. I'm not sure I'll have time to debug this soon.
@oli-obk How we try dumping the stackframe size?
you can use self.frame.len() I suppose and print that via debug!
Most helpful comment
:rofl: uh, so, I found this
https://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/operand.rs#L526
Basically the fix is to call
self.monomorphizeonconstant.literalin https://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/operand.rs#L497 and turn the return inhttps://github.com/rust-lang/rust/blob/811b996e58e7bd5a6ce2495d26363e7c934887f1/src/librustc_mir/interpret/operand.rs#L526 into a
bug!callThis change is blocked on the
eval_context.rschanges from https://github.com/rust-lang/rust/pull/62012