Open
Description
auto-reduced (treereduce-rust):
//@compile-flags: -Zmir-opt-level=5 -Zvalidate-mir
enum E { V16(u16), V32(u32) }
static C: (E, u16, str) = (, 0x600D, 0xBAD);
pub fn main() {
let (_, n, _) = C;
}
original:
//@ run-pass
#![allow(dead_code)]
enum E { V16(u16), V32(u32) }
static C: (E, u16, str) = (E::V16(0xDEAD), 0x600D, 0xBAD);
pub fn main() {
let (_, n, _) = C;
assert!(n != 0xBAD);
assert_eq!(n, 0x600D);
}
Version information
rustc 1.88.0-nightly (40dacd50b 2025-04-15)
binary: rustc
commit-hash: 40dacd50b7074783db748d73925ac5c3693a7ec1
commit-date: 2025-04-15
host: x86_64-unknown-linux-gnu
release: 1.88.0-nightly
LLVM version: 20.1.2
Possibly related line of code:
rust/compiler/rustc_middle/src/mir/interpret/mod.rs
Lines 366 to 378 in 40dacd5
Command:
/home/matthias/.rustup/toolchains/master/bin/rustc -Zmir-opt-level=5 -Zvalidate-mir
Program output
error: expected expression, found `,`
--> /tmp/icemaker_global_tempdir.3AprGNyTl55i/rustc_testrunner_tmpdir_reporting.bRtgIyNkaXla/mvce.rs:5:28
|
5 | static C: (E, u16, str) = (, 0x600D, 0xBAD);
| ^ expected expression
error[E0277]: the size for values of type `str` cannot be known at compilation time
--> /tmp/icemaker_global_tempdir.3AprGNyTl55i/rustc_testrunner_tmpdir_reporting.bRtgIyNkaXla/mvce.rs:5:11
|
5 | static C: (E, u16, str) = (, 0x600D, 0xBAD);
| ^^^^^^^^^^^^^ doesn't have a size known at compile-time
|
= help: within `(E, u16, str)`, the trait `Sized` is not implemented for `str`
= note: required because it appears within the type `(E, u16, str)`
= note: statics and constants must have a statically known size
warning: unused variable: `n`
--> /tmp/icemaker_global_tempdir.3AprGNyTl55i/rustc_testrunner_tmpdir_reporting.bRtgIyNkaXla/mvce.rs:8:13
|
8 | let (_, n, _) = C;
| ^ help: if this is intentional, prefix it with an underscore: `_n`
|
= note: `#[warn(unused_variables)]` on by default
thread 'rustc' panicked at compiler/rustc_middle/src/mir/interpret/mod.rs:372:21:
assertion failed: layout.is_sized()
stack backtrace:
0: 0x7f16c90e36f3 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::hac1fd18538367f85
1: 0x7f16c9806087 - core::fmt::write::h355b50e2dd48b7cb
2: 0x7f16cacaab91 - std::io::Write::write_fmt::h3c208cfcae87fbc5
3: 0x7f16c90e3552 - std::sys::backtrace::BacktraceLock::print::h52bf60fe66a866b6
4: 0x7f16c90e703a - std::panicking::default_hook::{{closure}}::ha54cd4f331000bf4
5: 0x7f16c90e6bbf - std::panicking::default_hook::h65502b75eb6b3c4d
6: 0x7f16c815b843 - std[6f1f62f9e1890267]::panicking::update_hook::<alloc[9c10c445f94edf6f]::boxed::Box<rustc_driver_impl[261694032873b461]::install_ice_hook::{closure#1}>>::{closure#0}
7: 0x7f16c90e78b3 - std::panicking::rust_panic_with_hook::h9f8305ffe577d3e1
8: 0x7f16c90e7576 - std::panicking::begin_panic_handler::{{closure}}::h1196da9ca3c9caa6
9: 0x7f16c90e3bb9 - std::sys::backtrace::__rust_end_short_backtrace::h209d7d99dc310f1c
10: 0x7f16c90e726d - __rustc[de9843575c99dce8]::rust_begin_unwind
11: 0x7f16c5a8a680 - core::panicking::panic_fmt::h42dd318a0e6082fa
12: 0x7f16c5a8f62c - core::panicking::panic::hb0960e31c93bed80
13: 0x7f16cae0181e - <rustc_middle[2dc3a1ceabbabe6a]::mir::interpret::GlobalAlloc>::size_and_align.cold
14: 0x7f16ca324c6a - <rustc_const_eval[ae92fa6a8d266fb6]::interpret::eval_context::InterpCx<rustc_const_eval[ae92fa6a8d266fb6]::const_eval::dummy_machine::DummyMachine>>::get_alloc_info
15: 0x7f16ca334d58 - <rustc_const_eval[ae92fa6a8d266fb6]::interpret::eval_context::InterpCx<rustc_const_eval[ae92fa6a8d266fb6]::const_eval::dummy_machine::DummyMachine>>::ptr_offset_inbounds
16: 0x7f16ca334ab9 - <rustc_const_eval[ae92fa6a8d266fb6]::interpret::operand::OpTy as rustc_const_eval[ae92fa6a8d266fb6]::interpret::projection::Projectable<rustc_middle[2dc3a1ceabbabe6a]::mir::interpret::pointer::CtfeProvenance>>::offset_with_meta::<rustc_const_eval[ae92fa6a8d266fb6]::const_eval::dummy_machine::DummyMachine>
17: 0x7f16ca334998 - <rustc_const_eval[ae92fa6a8d266fb6]::interpret::eval_context::InterpCx<rustc_const_eval[ae92fa6a8d266fb6]::const_eval::dummy_machine::DummyMachine>>::project_field::<rustc_const_eval[ae92fa6a8d266fb6]::interpret::operand::OpTy>
18: 0x7f16ca334447 - <rustc_const_eval[ae92fa6a8d266fb6]::interpret::eval_context::InterpCx<rustc_const_eval[ae92fa6a8d266fb6]::const_eval::dummy_machine::DummyMachine>>::project::<rustc_const_eval[ae92fa6a8d266fb6]::interpret::operand::OpTy>
19: 0x7f16ca32d176 - <rustc_mir_transform[27e09089e56c5a07]::gvn::VnState>::insert
20: 0x7f16ca32863b - <rustc_mir_transform[27e09089e56c5a07]::gvn::VnState>::simplify_place_value
21: 0x7f16ca327deb - <rustc_mir_transform[27e09089e56c5a07]::gvn::VnState>::simplify_operand
22: 0x7f16c70e2b1e - <rustc_mir_transform[27e09089e56c5a07]::gvn::VnState as rustc_middle[2dc3a1ceabbabe6a]::mir::visit::MutVisitor>::visit_statement
23: 0x7f16c70e0e97 - <rustc_mir_transform[27e09089e56c5a07]::gvn::GVN as rustc_mir_transform[27e09089e56c5a07]::pass_manager::MirPass>::run_pass
24: 0x7f16c9803fbb - rustc_mir_transform[27e09089e56c5a07]::pass_manager::run_passes_inner
25: 0x7f16ca376a9f - rustc_mir_transform[27e09089e56c5a07]::optimized_mir
26: 0x7f16ca37608d - rustc_query_impl[ad69a23e50a8fbd1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ad69a23e50a8fbd1]::query_impl::optimized_mir::dynamic_query::{closure#2}::{closure#0}, rustc_middle[2dc3a1ceabbabe6a]::query::erase::Erased<[u8; 8usize]>>
27: 0x7f16c9af412f - rustc_query_system[8ca381065095edd4]::query::plumbing::try_execute_query::<rustc_query_impl[ad69a23e50a8fbd1]::DynamicConfig<rustc_query_system[8ca381065095edd4]::query::caches::DefIdCache<rustc_middle[2dc3a1ceabbabe6a]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[ad69a23e50a8fbd1]::plumbing::QueryCtxt, false>
28: 0x7f16c9af355d - rustc_query_impl[ad69a23e50a8fbd1]::query_impl::optimized_mir::get_query_non_incr::__rust_end_short_backtrace
29: 0x7f16c9db3d46 - <rustc_middle[2dc3a1ceabbabe6a]::ty::context::TyCtxt>::instance_mir
30: 0x7f16c9c0e0b4 - rustc_interface[f2198cb0de4afffb]::passes::run_required_analyses
31: 0x7f16ca355f9e - rustc_interface[f2198cb0de4afffb]::passes::analysis
32: 0x7f16ca355f73 - rustc_query_impl[ad69a23e50a8fbd1]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[ad69a23e50a8fbd1]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[2dc3a1ceabbabe6a]::query::erase::Erased<[u8; 0usize]>>
33: 0x7f16ca7fb73d - rustc_query_system[8ca381065095edd4]::query::plumbing::try_execute_query::<rustc_query_impl[ad69a23e50a8fbd1]::DynamicConfig<rustc_query_system[8ca381065095edd4]::query::caches::SingleCache<rustc_middle[2dc3a1ceabbabe6a]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[ad69a23e50a8fbd1]::plumbing::QueryCtxt, false>
34: 0x7f16ca7fb438 - rustc_query_impl[ad69a23e50a8fbd1]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
35: 0x7f16cab1b47e - rustc_interface[f2198cb0de4afffb]::passes::create_and_enter_global_ctxt::<core[e6c01ae462af1362]::option::Option<rustc_interface[f2198cb0de4afffb]::queries::Linker>, rustc_driver_impl[261694032873b461]::run_compiler::{closure#0}::{closure#2}>::{closure#2}::{closure#0}
36: 0x7f16ca90d904 - rustc_interface[f2198cb0de4afffb]::interface::run_compiler::<(), rustc_driver_impl[261694032873b461]::run_compiler::{closure#0}>::{closure#1}
37: 0x7f16ca6ee028 - std[6f1f62f9e1890267]::sys::backtrace::__rust_begin_short_backtrace::<rustc_interface[f2198cb0de4afffb]::util::run_in_thread_with_globals<rustc_interface[f2198cb0de4afffb]::util::run_in_thread_pool_with_globals<rustc_interface[f2198cb0de4afffb]::interface::run_compiler<(), rustc_driver_impl[261694032873b461]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>
38: 0x7f16ca6ee92b - <<std[6f1f62f9e1890267]::thread::Builder>::spawn_unchecked_<rustc_interface[f2198cb0de4afffb]::util::run_in_thread_with_globals<rustc_interface[f2198cb0de4afffb]::util::run_in_thread_pool_with_globals<rustc_interface[f2198cb0de4afffb]::interface::run_compiler<(), rustc_driver_impl[261694032873b461]::run_compiler::{closure#0}>::{closure#1}, ()>::{closure#0}, ()>::{closure#0}::{closure#0}, ()>::{closure#1} as core[e6c01ae462af1362]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
39: 0x7f16ca6efd37 - std::sys::pal::unix::thread::Thread::new::thread_start::he9943a285b1830ff
40: 0x7f16c46a370a - <unknown>
41: 0x7f16c4727aac - <unknown>
42: 0x0 - <unknown>
error: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: please make sure that you have updated to the latest nightly
note: rustc 1.88.0-nightly (40dacd50b 2025-04-15) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z mir-opt-level=5 -Z validate-mir -Z dump-mir-dir=dir
query stack during panic:
#0 [optimized_mir] optimizing MIR for `main`
#1 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 2 previous errors; 1 warning emitted
For more information about this error, try `rustc --explain E0277`.