Description
This test in Miri recently started ICEing:
error: internal compiler error: /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/place.rs:771:68: write_immediate_to_mplace: invalid ScalarPair layout: TyAndLayout {
ty: *mut alloc::collections::btree::node::LeafNode<Foo, ()>,
layout: Layout {
fields: Primitive,
variants: Single {
index: 0,
},
abi: Scalar(
Initialized {
value: Pointer,
valid_range: 0..=18446744073709551615,
},
),
largest_niche: None,
align: AbiAndPrefAlign {
abi: Align(8 bytes),
pref: Align(8 bytes),
},
size: Size(8 bytes),
},
}
--> /home/r/.rustup/toolchains/miri/lib/rustlib/src/rust/library/alloc/src/collections/btree/node.rs:84:28
|
84 | LeafNode::init(leaf.as_mut_ptr());
| ^^^^^^^^^^^^^^^^^
So we have a ScalarPair value with Scalar layout. Clearly something went wrong somewhere earlier when that value was constructed.
Backtrace
thread 'rustc' panicked at 'Box<dyn Any>', /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_errors/src/lib.rs:1331:9
stack backtrace:
0: 0x7f5e230ae4cd - std::backtrace_rs::backtrace::libunwind::trace::ha65f46174cdb360a
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f5e230ae4cd - std::backtrace_rs::backtrace::trace_unsynchronized::hfbfbd995eed88907
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f5e230ae4cd - std::sys_common::backtrace::_print_fmt::hb9a4b91d9836896b
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/sys_common/backtrace.rs:66:5
3: 0x7f5e230ae4cd - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h74b81077de211a85
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/sys_common/backtrace.rs:45:22
4: 0x7f5e2310a30c - core::fmt::write::h79f47bb3504917f6
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/core/src/fmt/mod.rs:1196:17
5: 0x7f5e2309fa91 - std::io::Write::write_fmt::h3937ab33a0b333dc
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/io/mod.rs:1654:15
6: 0x7f5e230b11a5 - std::sys_common::backtrace::_print::h93abfd2adb3fdfb0
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/sys_common/backtrace.rs:48:5
7: 0x7f5e230b11a5 - std::sys_common::backtrace::print::h35a3573fe2a0b616
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/sys_common/backtrace.rs:35:9
8: 0x7f5e230b11a5 - std::panicking::default_hook::{{closure}}::h0e88dc5c1d6b72c1
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panicking.rs:295:22
9: 0x7f5e230b0ec6 - std::panicking::default_hook::h472eb815610d1ad9
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panicking.rs:314:9
10: 0x7f5e23888d81 - rustc_driver[f30206aada3619d2]::DEFAULT_HOOK::{closure#0}::{closure#0}
11: 0x7f5e230b187a - std::panicking::rust_panic_with_hook::h65d3a31645b7d9c0
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panicking.rs:702:17
12: 0x55940784c023 - std::panicking::begin_panic::{{closure}}::h3cd7d2520ba0a39c
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panicking.rs:617:9
13: 0x55940784bff6 - std::sys_common::backtrace::__rust_end_short_backtrace::hf2f19a7d201a3078
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/sys_common/backtrace.rs:138:18
14: 0x5594076b6a96 - std::panicking::begin_panic::h6814c3cf587ca3fb
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panicking.rs:616:12
15: 0x559407819b66 - std::panic::panic_any::hfff2880ea7eb7866
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/library/std/src/panic.rs:61:5
16: 0x559407819013 - rustc_errors::HandlerInner::span_bug::h08b5b6a6c06108aa
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_errors/src/lib.rs:1331:9
17: 0x559407819b0a - rustc_errors::Handler::span_bug::h43e80d1caefd13a6
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_errors/src/lib.rs:912:9
18: 0x559407845549 - rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}::hc07de1ff7ee9cfd9
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/util/bug.rs:34:40
19: 0x559407845549 - rustc_middle::ty::context::tls::with_opt::{{closure}}::hd7fb4337a1bf88f4
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/ty/context.rs:1900:40
20: 0x559407845549 - rustc_middle::ty::context::tls::with_context_opt::h8ef810eb8003f5f6
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/ty/context.rs:1852:22
21: 0x559407845549 - rustc_middle::ty::context::tls::with_opt::h93bb0b3d4802b0e9
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/ty/context.rs:1900:9
22: 0x5594078455a9 - rustc_middle::util::bug::opt_span_bug_fmt::hc158fe01d3cd1e01
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/util/bug.rs:31:5
23: 0x5594076b6a57 - rustc_middle::util::bug::span_bug_fmt::h7b911efb8d56e467
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_middle/src/util/bug.rs:22:5
24: 0x559407781814 - rustc_const_eval::interpret::place::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::write_immediate_to_mplace_no_validate::h0638e32f5165e0c1
25: 0x5594077809cb - rustc_const_eval::interpret::place::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::write_immediate_no_validate::h69bc9b8a733970d8
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/place.rs:733:9
26: 0x559407780422 - rustc_const_eval::interpret::place::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::copy_op_no_validate::h3950ffa7c8a7eabe
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/place.rs:872:24
27: 0x55940777ea1d - rustc_const_eval::interpret::place::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::copy_op::hbb10dc29e60e83fa
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/place.rs:836:9
28: 0x55940777ea1d - rustc_const_eval::interpret::place::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::copy_op_transmute::h2e5a425a97c34a82
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/place.rs:903:20
29: 0x55940776c770 - rustc_const_eval::interpret::eval_context::InterpCx<M>::pop_stack_frame::h88260ac54a8018a0
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/eval_context.rs:814:13
30: 0x559407775bdb - rustc_const_eval::interpret::terminator::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::eval_terminator::h662a1237dfdb504c
31: 0x559407775bdb - rustc_const_eval::interpret::step::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::terminator::hf0cbf184e1be5a2d
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/step.rs:305:9
32: 0x559407747db7 - rustc_const_eval::interpret::step::<impl rustc_const_eval::interpret::eval_context::InterpCx<M>>::step::h2611461c9f6f7522
at /rustc/6ec3993ef4a4eb72bc20477fe9a4d92acd53f2c6/compiler/rustc_const_eval/src/interpret/step.rs:71:9
33: 0x559407747db7 - miri::eval::eval_entry::{{closure}}::h9cce92f32328283b
at /home/r/src/rust/miri.2/src/eval.rs:338:29
34: 0x559407747db7 - miri::eval::eval_entry::hc2a5923a148b7ccd
at /home/r/src/rust/miri.2/src/eval.rs:332:38