Closed
Description
Code
./src/test/ui/issues/issue-46855.rs
// run-pass
#![allow(dead_code)]
// compile-flags: -Zmir-opt-level=1
use std::mem;
#[derive(Copy, Clone)]
enum Never {}
union Foo {
a: u64,
b: Never
}
fn foo(xs: [(Never, u32); 1]) -> u32 { xs[0].1 }
fn bar([(_, x)]: [(Never, u32); 1]) -> u32 { x }
fn main() {
println!("{}", mem::size_of::<Foo>());
let f = [Foo { a: 42 }, Foo { a: 10 }];
println!("{:?}", unsafe { f[0].a });
}
Meta
rustc --version --verbose
:
rustc 1.60.0-nightly (930fc4f59 2022-02-17)
binary: rustc
commit-hash: 930fc4f59ddeb9f26d554a2c75c5355989189540
commit-date: 2022-02-17
host: x86_64-unknown-linux-gnu
release: 1.60.0-nightly
LLVM version: 13.0.0
Error output
rustc --emit=mir -Zmir-opt-level=3 ./src/test/ui/issues/issue-46855.rs
error: internal compiler error: /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/compiler/rustc_middle/src/ty/layout.rs:2254:25: for_variant called on zero-variant enum
thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1160:9
stack backtrace:
Backtrace
error: internal compiler error: /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/compiler/rustc_middle/src/ty/layout.rs:2254:25: for_variant called on zero-variant enum
thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1160:9
stack backtrace:
0: 0x7f78ad4b5b5c - std::backtrace_rs::backtrace::libunwind::trace::hae9f9f42caadfe9e
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x7f78ad4b5b5c - std::backtrace_rs::backtrace::trace_unsynchronized::h984313517e631cbc
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f78ad4b5b5c - std::sys_common::backtrace::_print_fmt::ha75e0881baa93144
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/sys_common/backtrace.rs:66:5
3: 0x7f78ad4b5b5c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h41c1f36665a9bd0e
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/sys_common/backtrace.rs:45:22
4: 0x7f78ad51769c - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1190:17
5: 0x7f78ad4a5f48 - std::io::Write::write_fmt::h96de94e7a15fe749
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/io/mod.rs:1657:15
6: 0x7f78ad4b9ad7 - std::sys_common::backtrace::_print::h04f509d7765fd143
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/sys_common/backtrace.rs:48:5
7: 0x7f78ad4b9ad7 - std::sys_common::backtrace::print::h1d2690496ac522bf
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/sys_common/backtrace.rs:35:9
8: 0x7f78ad4b9ad7 - std::panicking::default_hook::{{closure}}::h4365d5216af531ce
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/panicking.rs:295:22
9: 0x7f78ad4b979f - std::panicking::default_hook::h08ec5ddaab2681b4
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/panicking.rs:314:9
10: 0x7f78adc43e31 - rustc_driver[bd9cd877565bda13]::DEFAULT_HOOK::{closure#0}::{closure#0}
11: 0x7f78ad4ba3b5 - std::panicking::rust_panic_with_hook::hf261a9968df6254e
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/panicking.rs:702:17
12: 0x7f78aed15891 - std[c5462c1bfd218a1c]::panicking::begin_panic::<rustc_errors[510fcacd8a67285a]::ExplicitBug>::{closure#0}
13: 0x7f78aed15806 - std[c5462c1bfd218a1c]::sys_common::backtrace::__rust_end_short_backtrace::<std[c5462c1bfd218a1c]::panicking::begin_panic<rustc_errors[510fcacd8a67285a]::ExplicitBug>::{closure#0}, !>
14: 0x7f78aed1bb5f - std[c5462c1bfd218a1c]::panicking::begin_panic::<rustc_errors[510fcacd8a67285a]::ExplicitBug>
15: 0x7f78aed2891d - std[c5462c1bfd218a1c]::panic::panic_any::<rustc_errors[510fcacd8a67285a]::ExplicitBug>
16: 0x7f78aed27bd7 - <rustc_errors[510fcacd8a67285a]::HandlerInner>::bug
17: 0x7f78aed27700 - <rustc_errors[510fcacd8a67285a]::Handler>::bug
18: 0x7f78aeba79d9 - rustc_middle[54f726bc1ff843e8]::ty::context::tls::with_opt::<rustc_middle[54f726bc1ff843e8]::util::bug::opt_span_bug_fmt<rustc_span[6689c5c9190a746]::span_encoding::Span>::{closure#0}, ()>
19: 0x7f78aeba84b0 - rustc_middle[54f726bc1ff843e8]::util::bug::opt_span_bug_fmt::<rustc_span[6689c5c9190a746]::span_encoding::Span>
20: 0x7f78aeba8426 - rustc_middle[54f726bc1ff843e8]::util::bug::bug_fmt
21: 0x7f78af4b14e6 - <rustc_target[975f0522de779dc6]::abi::TyAndLayout<rustc_middle[54f726bc1ff843e8]::ty::Ty>>::for_variant::<rustc_const_eval[132fa4eec9f394a]::interpret::eval_context::InterpCx<rustc_const_eval[132fa4eec9f394a]::const_eval::machine::CompileTimeInterpreter>>
22: 0x7f78afee887c - <rustc_const_eval[132fa4eec9f394a]::interpret::eval_context::InterpCx<rustc_const_eval[132fa4eec9f394a]::const_eval::machine::CompileTimeInterpreter>>::operand_downcast
23: 0x7f78aff06a91 - rustc_const_eval[132fa4eec9f394a]::const_eval::try_destructure_const
24: 0x7f78afeff797 - <rustc_const_eval[132fa4eec9f394a]::provide::{closure#0} as core[95c145b1f11c2ef3]::ops::function::FnOnce<(rustc_middle[54f726bc1ff843e8]::ty::context::TyCtxt, rustc_middle[54f726bc1ff843e8]::ty::ParamEnvAnd<rustc_middle[54f726bc1ff843e8]::ty::consts::Const>)>>::call_once
25: 0x7f78aff9dd9e - rustc_query_system[7bd7ac6a0d193a7f]::query::plumbing::get_query::<rustc_query_impl[5a04f718ab6f27a3]::queries::try_destructure_const, rustc_query_impl[5a04f718ab6f27a3]::plumbing::QueryCtxt>
26: 0x7f78affbac8a - <rustc_query_impl[5a04f718ab6f27a3]::Queries as rustc_middle[54f726bc1ff843e8]::ty::query::QueryEngine>::try_destructure_const
27: 0x7f78aeb8e666 - <rustc_middle[54f726bc1ff843e8]::ty::print::pretty::FmtPrinter<&mut core[95c145b1f11c2ef3]::fmt::Formatter> as rustc_middle[54f726bc1ff843e8]::ty::print::pretty::PrettyPrinter>::pretty_print_const_value
28: 0x7f78aeb8c76c - <rustc_middle[54f726bc1ff843e8]::ty::print::pretty::FmtPrinter<&mut core[95c145b1f11c2ef3]::fmt::Formatter> as rustc_middle[54f726bc1ff843e8]::ty::print::pretty::PrettyPrinter>::pretty_print_const
29: 0x7f78aeb8e3f3 - <rustc_middle[54f726bc1ff843e8]::ty::print::pretty::FmtPrinter<&mut core[95c145b1f11c2ef3]::fmt::Formatter> as rustc_middle[54f726bc1ff843e8]::ty::print::pretty::PrettyPrinter>::pretty_print_const_value
30: 0x7f78aeb8c76c - <rustc_middle[54f726bc1ff843e8]::ty::print::pretty::FmtPrinter<&mut core[95c145b1f11c2ef3]::fmt::Formatter> as rustc_middle[54f726bc1ff843e8]::ty::print::pretty::PrettyPrinter>::pretty_print_const
31: 0x7f78aebf0cfe - rustc_middle[54f726bc1ff843e8]::mir::pretty_print_const
32: 0x7f78ad51769c - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1190:17
33: 0x7f78ad5185c4 - core::fmt::Formatter::write_fmt::h23d0734773a3404c
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1644:9
34: 0x7f78aebf0ac1 - <rustc_middle[54f726bc1ff843e8]::mir::Constant as core[95c145b1f11c2ef3]::fmt::Debug>::fmt
35: 0x7f78ad51769c - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1190:17
36: 0x7f78ad5185c4 - core::fmt::Formatter::write_fmt::h23d0734773a3404c
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1644:9
37: 0x7f78aebefc4b - <rustc_middle[54f726bc1ff843e8]::mir::Operand as core[95c145b1f11c2ef3]::fmt::Debug>::fmt
38: 0x7f78ad514e88 - core::fmt::builders::DebugInner::entry::{{closure}}::h9222e19a8d7e9c55
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/builders.rs:404:17
39: 0x7f78ad514e88 - core::result::Result<T,E>::and_then::h401606d107cc683f
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/result.rs:1311:22
40: 0x7f78ad514e88 - core::fmt::builders::DebugInner::entry::h88a4247fc2119573
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/builders.rs:390:23
41: 0x7f78ad514f49 - core::fmt::builders::DebugSet::entry::h369c1f9382734160
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/builders.rs:479:9
42: 0x7f78aec235ed - <core[95c145b1f11c2ef3]::fmt::builders::DebugList>::entries::<&rustc_middle[54f726bc1ff843e8]::mir::Operand, core[95c145b1f11c2ef3]::slice::iter::Iter<rustc_middle[54f726bc1ff843e8]::mir::Operand>>
43: 0x7f78aebf1d52 - <[rustc_middle[54f726bc1ff843e8]::mir::Operand] as core[95c145b1f11c2ef3]::fmt::Debug>::fmt
44: 0x7f78ad51769c - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1190:17
45: 0x7f78ad5185c4 - core::fmt::Formatter::write_fmt::h23d0734773a3404c
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1644:9
46: 0x7f78aebf040d - <rustc_middle[54f726bc1ff843e8]::mir::Rvalue as core[95c145b1f11c2ef3]::fmt::Debug>::fmt
47: 0x7f78ad51769c - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1190:17
48: 0x7f78ad5185c4 - core::fmt::Formatter::write_fmt::h23d0734773a3404c
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1644:9
49: 0x7f78aebef38e - <rustc_middle[54f726bc1ff843e8]::mir::Statement as core[95c145b1f11c2ef3]::fmt::Debug>::fmt
50: 0x7f78ad517617 - core::fmt::run::hf5938b3d24764f7f
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1238:5
51: 0x7f78ad517617 - core::fmt::write::h3e5b6f29124944f2
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:1206:26
52: 0x7f78ad50ad1a - core::fmt::Write::write_fmt::h9a2f3ae66495f002
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/core/src/fmt/mod.rs:186:9
53: 0x7f78ad50ad1a - alloc::fmt::format::h7fddae664e350972
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/alloc/src/fmt.rs:597:5
54: 0x7f78aebe7e9f - rustc_middle[54f726bc1ff843e8]::mir::pretty::write_mir_pretty::{closure#0}
55: 0x7f78aebe6d12 - rustc_middle[54f726bc1ff843e8]::mir::pretty::write_mir_pretty
56: 0x7f78ade6fee7 - rustc_mir_transform[1fd4d79f3cd46a65]::dump_mir::emit_mir
57: 0x7f78afae3ad9 - <rustc_interface[47e598c4883003da]::passes::QueryContext>::enter::<<rustc_interface[47e598c4883003da]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[95c145b1f11c2ef3]::result::Result<alloc[78bb397c44a79a8c]::boxed::Box<dyn core[95c145b1f11c2ef3]::any::Any>, rustc_errors[510fcacd8a67285a]::ErrorReported>>
58: 0x7f78afada08f - <rustc_interface[47e598c4883003da]::queries::Queries>::ongoing_codegen
59: 0x7f78afaa4bcb - rustc_interface[47e598c4883003da]::interface::create_compiler_and_run::<core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>, rustc_driver[bd9cd877565bda13]::run_compiler::{closure#1}>
60: 0x7f78afa8a243 - std[c5462c1bfd218a1c]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[47e598c4883003da]::util::run_in_thread_pool_with_globals<rustc_interface[47e598c4883003da]::interface::run_compiler<core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>, rustc_driver[bd9cd877565bda13]::run_compiler::{closure#1}>::{closure#0}, core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>>::{closure#0}, core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>>
61: 0x7f78afabd219 - <<std[c5462c1bfd218a1c]::thread::Builder>::spawn_unchecked_<rustc_interface[47e598c4883003da]::util::run_in_thread_pool_with_globals<rustc_interface[47e598c4883003da]::interface::run_compiler<core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>, rustc_driver[bd9cd877565bda13]::run_compiler::{closure#1}>::{closure#0}, core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>>::{closure#0}, core[95c145b1f11c2ef3]::result::Result<(), rustc_errors[510fcacd8a67285a]::ErrorReported>>::{closure#1} as core[95c145b1f11c2ef3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
62: 0x7f78ad4c6263 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h999d90366a7ea653
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/alloc/src/boxed.rs:1854:9
63: 0x7f78ad4c6263 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h698a3a9df94c6dbd
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/alloc/src/boxed.rs:1854:9
64: 0x7f78ad4c6263 - std::sys::unix::thread::Thread::new::thread_start::he468d1e19370709b
at /rustc/930fc4f59ddeb9f26d554a2c75c5355989189540/library/std/src/sys/unix/thread.rs:108:17
65: 0x7f78ad3cb259 - start_thread
66: 0x7f78ad2e75e3 - __GI___clone
67: 0x0 - <unknown>
note: 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: rustc 1.60.0-nightly (930fc4f59 2022-02-17) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z mir-opt-level=3
query stack during panic:
#0 [try_destructure_const] destructure constant
end of query stack
error: aborting due to previous error