Skip to content

ICE: index out of bounds: the len is 0 but the index is 0' with --emit mir and mir-opt-level >1 #72181

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Closed
matthiaskrgr opened this issue May 13, 2020 · 6 comments · Fixed by #73442
Labels
A-mir-opt Area: MIR optimizations C-bug Category: This is a bug. F-never_type `#![feature(never_type)]` glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

Code

This miri test code ./src/tools/miri/tests/compile-fail/never_transmute_void.rs

// This should fail even without validation
// compile-flags: -Zmiri-disable-validation

#![feature(never_type)]
#![allow(unused, invalid_value)]

enum Void {}

fn f(v: Void) -> ! {
    match v {} //~ ERROR entering unreachable code
}

fn main() {
    let v: Void = unsafe {
        std::mem::transmute::<(), Void>(())
    };
    f(v); //~ inside `main`
}

Causes an ice when compiled with -Zmir-opt-level=2 --emit mir (but not with opt-level <2 or missing --emit mir)

Meta

rustc --version --verbose:

rustc 1.45.0-nightly (769d12eec 2020-05-12)
binary: rustc
commit-hash: 769d12eec1d0bc3708841dfc149d3ec98b04bec6
commit-date: 2020-05-12
host: x86_64-unknown-linux-gnu
release: 1.45.0-nightly
LLVM version: 9.0

Error output

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', src/librustc_middle/ty/mod.rs:2455:19
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

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.45.0-nightly (769d12eec 2020-05-12) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=2

Backtrace

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', src/librustc_middle/ty/mod.rs:2455:19
stack backtrace:
   0:     0x7f232747aa64 - backtrace::backtrace::libunwind::trace::h98d3444f0ad70429
                               at /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1:     0x7f232747aa64 - backtrace::backtrace::trace_unsynchronized::h371770250c47e40d
                               at /cargo/registry/src/github.heygears.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2:     0x7f232747aa64 - std::sys_common::backtrace::_print_fmt::hff04dc7e915a3c85
                               at src/libstd/sys_common/backtrace.rs:78
   3:     0x7f232747aa64 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h61891c439a79f00d
                               at src/libstd/sys_common/backtrace.rs:59
   4:     0x7f23274b896c - core::fmt::write::hdf236390fbd68d3d
                               at src/libcore/fmt/mod.rs:1069
   5:     0x7f232746c433 - std::io::Write::write_fmt::h1a1f8616ed2f90f9
                               at src/libstd/io/mod.rs:1537
   6:     0x7f232747fa85 - std::sys_common::backtrace::_print::h78339381acb79e1b
                               at src/libstd/sys_common/backtrace.rs:62
   7:     0x7f232747fa85 - std::sys_common::backtrace::print::h525aa9f9405c80a1
                               at src/libstd/sys_common/backtrace.rs:49
   8:     0x7f232747fa85 - std::panicking::default_hook::{{closure}}::hace90b8a218287e6
                               at src/libstd/panicking.rs:198
   9:     0x7f232747f7d7 - std::panicking::default_hook::h160b6beccc49b335
                               at src/libstd/panicking.rs:218
  10:     0x7f2327a99c23 - rustc_driver::report_ice::h4f38da7fac8ebd4c
  11:     0x7f232748013d - std::panicking::rust_panic_with_hook::h36f6804eea3f553a
                               at src/libstd/panicking.rs:481
  12:     0x7f232747fd1b - rust_begin_unwind
                               at src/libstd/panicking.rs:385
  13:     0x7f23274b5601 - core::panicking::panic_fmt::hd101a87121fa411f
                               at src/libcore/panicking.rs:89
  14:     0x7f23274b55c2 - core::panicking::panic_bounds_check::ha0668dcff6357ef4
                               at src/libcore/panicking.rs:65
  15:     0x7f232a2858b8 - rustc_middle::ty::AdtDef::discriminant_def_for_variant::hb8665f68c3c8925f
  16:     0x7f23290981a4 - rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::discriminant_for_variant::hf8f2b2d0f600757c
  17:     0x7f23290dcc63 - rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::read_discriminant::h04383a786f9e5f5c
  18:     0x7f2328e8ed6b - rustc_mir::const_eval::destructure_const::hea137a6a8b6323b8
  19:     0x7f2328debda4 - core::ops::function::FnOnce::call_once::he49d534148327124
  20:     0x7f2329fb2fb1 - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::destructure_const>::compute::hfa7b6d2252302ba6
  21:     0x7f232a060885 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::hb3d4c13d744e715a
  22:     0x7f232a3ab702 - rustc_data_structures::stack::ensure_sufficient_stack::hdcee244c83eb407b
  23:     0x7f232a1763a4 - rustc_query_system::query::plumbing::get_query_impl::hef1678ca65220230
  24:     0x7f2329fa1302 - rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_const::h583cec005ac559c3
  25:     0x7f232a0a999f - rustc_middle::mir::pretty_print_const::ha73776b5fc4e1f49
  26:     0x7f23274b896c - core::fmt::write::hdf236390fbd68d3d
                               at src/libcore/fmt/mod.rs:1069
  27:     0x7f23274b9794 - core::fmt::Formatter::write_fmt::h95caeeba181649fe
                               at src/libcore/fmt/mod.rs:1498
  28:     0x7f232a3c2d74 - <&T as core::fmt::Debug>::fmt::hc537246aca244980
  29:     0x7f23274b896c - core::fmt::write::hdf236390fbd68d3d
                               at src/libcore/fmt/mod.rs:1069
  30:     0x7f23274b9794 - core::fmt::Formatter::write_fmt::h95caeeba181649fe
                               at src/libcore/fmt/mod.rs:1498
  31:     0x7f232a0a6f58 - <rustc_middle::mir::Operand as core::fmt::Debug>::fmt::h666dba9a1334652c
  32:     0x7f23274b896c - core::fmt::write::hdf236390fbd68d3d
                               at src/libcore/fmt/mod.rs:1069
  33:     0x7f23274b9794 - core::fmt::Formatter::write_fmt::h95caeeba181649fe
                               at src/libcore/fmt/mod.rs:1498
  34:     0x7f232a0a56b2 - <rustc_middle::mir::TerminatorKind as core::fmt::Debug>::fmt::h3ca5eba4a9e4e295
  35:     0x7f23274b88db - core::fmt::run::h9b3b3bec27be60ec
                               at src/libcore/fmt/mod.rs:1103
  36:     0x7f23274b88db - core::fmt::write::hdf236390fbd68d3d
                               at src/libcore/fmt/mod.rs:1078
  37:     0x7f23274ab812 - core::fmt::Write::write_fmt::h0a4283ca6cdb8567
                               at /rustc/769d12eec1d0bc3708841dfc149d3ec98b04bec6/src/libcore/fmt/mod.rs:193
  38:     0x7f23274ab812 - alloc::fmt::format::h657722b395b07d36
                               at src/liballoc/fmt.rs:586
  39:     0x7f2328f26e46 - rustc_mir::util::pretty::write_mir_pretty::h5f0518bd9dc7a33c
  40:     0x7f232916ad2f - rustc_mir::transform::dump_mir::emit_mir::h3ac1a091dc0e3c6e
  41:     0x7f2327e4fead - rustc_interface::passes::start_codegen::h459335c6dd01052b
  42:     0x7f2327d37b29 - rustc_middle::ty::context::tls::enter_global::h739103a57ae08ef8
  43:     0x7f2327d52806 - rustc_interface::queries::Queries::ongoing_codegen::hfa82dc9d28eff2f3
  44:     0x7f2327a680ff - rustc_interface::interface::run_compiler_in_existing_thread_pool::h9607844d06857db5
  45:     0x7f2327aa77bd - scoped_tls::ScopedKey<T>::set::haf4c7963bcdf05e7
  46:     0x7f2327aa04a4 - rustc_ast::attr::with_globals::h6a7f645f85d913be
  47:     0x7f2327aa8abe - std::sys_common::backtrace::__rust_begin_short_backtrace::hc1d7bb4af8e37486
  48:     0x7f2327bf666e - core::ops::function::FnOnce::call_once{{vtable.shim}}::h274c438c26ba3928
  49:     0x7f23274900aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h5b84f52b19042f22
                               at /rustc/769d12eec1d0bc3708841dfc149d3ec98b04bec6/src/liballoc/boxed.rs:1034
  50:     0x7f23274900aa - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h6e1ef057e35f3144
                               at /rustc/769d12eec1d0bc3708841dfc149d3ec98b04bec6/src/liballoc/boxed.rs:1034
  51:     0x7f23274900aa - std::sys::unix::thread::Thread::new::thread_start::h8b0ae441dc3343d4
                               at src/libstd/sys/unix/thread.rs:87
  52:     0x7f23273a446f - start_thread
  53:     0x7f23272c43d3 - clone
  54:                0x0 - <unknown>

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.45.0-nightly (769d12eec 2020-05-12) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=2

query stack during panic:
#0 [destructure_const] destructure constant
end of query stack

@matthiaskrgr matthiaskrgr added C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels May 13, 2020
@jonas-schievink jonas-schievink added A-mir-opt Area: MIR optimizations requires-nightly This issue requires a nightly compiler in some way. labels May 13, 2020
@rust-lang-glacier-bot rust-lang-glacier-bot added the glacier ICE tracked in rust-lang/glacier. label May 18, 2020
@JohnTitor JohnTitor added the F-never_type `#![feature(never_type)]` label May 20, 2020
@matthiaskrgr
Copy link
Member Author

matthiaskrgr commented Jun 5, 2020

Looks like this also happens in ./src/test/ui/issues/issue-46855.rs which does not use any special features

// 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 });
}

cmd: RUST_BACKTRACE=full build/x86_64-unknown-linux-gnu/stage2/bin/rustc ./src/test/ui/issues/issue-46855.rs -Zmir-opt-level=1 --emit mir

EDIT: backtrace:

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', src/librustc_middle/ty/mod.rs:2359:19
stack backtrace:
   0:     0x7f2188294d57 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he2fbf5405bd3f46a
   1:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
   2:     0x7f2188265b95 - std::io::Write::write_fmt::h3c49d63e356d89fe
   3:     0x7f2188271980 - std::panicking::default_hook::{{closure}}::h6b88f05100c9e449
   4:     0x7f2188271694 - std::panicking::default_hook::h57a663a807afe943
   5:     0x7f2189c298a3 - rustc_driver::report_ice::h34c4499908ba0b29
   6:     0x7f218827206c - std::panicking::rust_panic_with_hook::haef04471b94d420c
   7:     0x7f2188271c3b - rust_begin_unwind
   8:     0x7f21882df7e1 - core::panicking::panic_fmt::h95ae6ee01add471a
   9:     0x7f21882df7a2 - core::panicking::panic_bounds_check::h50981b2f442979f1
  10:     0x7f218d9f15c8 - rustc_middle::ty::AdtDef::discriminant_def_for_variant::hb5d4a4e0979d34e0
  11:     0x7f218c6ca1e2 - rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::discriminant_for_variant::he55d7c41489848d7
  12:     0x7f218c7160c7 - rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::read_discriminant::h5f5c38f26e8b8ed8
  13:     0x7f218c79dbdd - rustc_mir::const_eval::destructure_const::h1f2cd6036022dfb8
  14:     0x7f218c32db46 - core::ops::function::FnOnce::call_once::h8c20fbb5bf3c1dd6
  15:     0x7f218d68c8ad - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::destructure_const>::compute::h3615046505938230
  16:     0x7f218d71cb09 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::ha13979abed354d04
  17:     0x7f218d88a1b6 - rustc_data_structures::stack::ensure_sufficient_stack::hb28e752bbf70f332
  18:     0x7f218d76be7a - rustc_query_system::query::plumbing::get_query_impl::h4795959616542474
  19:     0x7f218d663492 - rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_const::h42bd810d2dabec53
  20:     0x7f218d663db3 - rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_const::h42bd810d2dabec53
  21:     0x7f218d65472c - rustc_middle::mir::pretty_print_const::hd7cbc3a530cb0234
  22:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  23:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  24:     0x7f218d89f974 - <&T as core::fmt::Debug>::fmt::h61826e44f28f4f4a
  25:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  26:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  27:     0x7f218d651aa5 - <rustc_middle::mir::Operand as core::fmt::Debug>::fmt::hf2307fe080426e27
  28:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  29:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  30:     0x7f218d65223c - <rustc_middle::mir::Rvalue as core::fmt::Debug>::fmt::hd0f3169c5295fd5a
  31:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  32:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  33:     0x7f218d6513a8 - <rustc_middle::mir::Statement as core::fmt::Debug>::fmt::hc9cc86a23e746649
  34:     0x7f21882e19aa - core::fmt::write::h65255e7874586eb2
  35:     0x7f21882bf6ca - alloc::fmt::format::hc8afcfd973bb1a1f
  36:     0x7f218c366f71 - rustc_mir::util::pretty::write_mir_pretty::h93c9145185ddab0f
  37:     0x7f218c862c23 - rustc_mir::transform::dump_mir::emit_mir::h514eb69ae7eaa045
  38:     0x7f2189de7604 - rustc_interface::passes::start_codegen::h64d9c511ec596bff
  39:     0x7f2189e156d2 - rustc_middle::ty::context::tls::enter_global::hd5d9719ecc10b8ad
  40:     0x7f2189e0b77e - rustc_interface::queries::Queries::ongoing_codegen::h5a481c30c4739353
  41:     0x7f2189c37a0b - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h46a369817e38d2d4
  42:     0x7f2189ca17ca - rustc_span::with_source_map::ha1e1d15982d868c1
  43:     0x7f2189c39b49 - rustc_interface::interface::run_compiler_in_existing_thread_pool::hfd5622ef3ce026be
  44:     0x7f2189c1334e - scoped_tls::ScopedKey<T>::set::hd3c1397285b10bd3
  45:     0x7f2189c3a576 - std::sys_common::backtrace::__rust_begin_short_backtrace::h3df4554cf04b61c9
  46:     0x7f2189c0717e - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb0a109416f61afc2
  47:     0x7f2188279d7a - std::sys::unix::thread::Thread::new::thread_start::hb2effada6f868308
  48:     0x7f2187fa0422 - start_thread
  49:     0x7f21880bebf3 - __GI___clone
  50:                0x0 - <unknown>

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.45.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=1

query stack during panic:
#0 [destructure_const] destructure constant
end of query stack

@RalfJung
Copy link
Member

RalfJung commented Jun 5, 2020

Is this a regression? Looks like the backtrace points to read_discriminant which was recently changed in #72419.

@RalfJung
Copy link
Member

RalfJung commented Jun 5, 2020

Ah, but the original report is from before that PR. Not a regression then, or at least not caused by this PR.

@RalfJung
Copy link
Member

RalfJung commented Jun 5, 2020

@matthiaskrgr could you post a backtrace for the second ICE? The first one was related to the match, but the second does not have a match.

@matthiaskrgr
Copy link
Member Author

backtrace:

thread 'rustc' panicked at 'index out of bounds: the len is 0 but the index is 0', src/librustc_middle/ty/mod.rs:2359:19
stack backtrace:
   0:     0x7f2188294d57 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he2fbf5405bd3f46a
   1:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
   2:     0x7f2188265b95 - std::io::Write::write_fmt::h3c49d63e356d89fe
   3:     0x7f2188271980 - std::panicking::default_hook::{{closure}}::h6b88f05100c9e449
   4:     0x7f2188271694 - std::panicking::default_hook::h57a663a807afe943
   5:     0x7f2189c298a3 - rustc_driver::report_ice::h34c4499908ba0b29
   6:     0x7f218827206c - std::panicking::rust_panic_with_hook::haef04471b94d420c
   7:     0x7f2188271c3b - rust_begin_unwind
   8:     0x7f21882df7e1 - core::panicking::panic_fmt::h95ae6ee01add471a
   9:     0x7f21882df7a2 - core::panicking::panic_bounds_check::h50981b2f442979f1
  10:     0x7f218d9f15c8 - rustc_middle::ty::AdtDef::discriminant_def_for_variant::hb5d4a4e0979d34e0
  11:     0x7f218c6ca1e2 - rustc_middle::ty::sty::<impl rustc_middle::ty::TyS>::discriminant_for_variant::he55d7c41489848d7
  12:     0x7f218c7160c7 - rustc_mir::interpret::operand::<impl rustc_mir::interpret::eval_context::InterpCx<M>>::read_discriminant::h5f5c38f26e8b8ed8
  13:     0x7f218c79dbdd - rustc_mir::const_eval::destructure_const::h1f2cd6036022dfb8
  14:     0x7f218c32db46 - core::ops::function::FnOnce::call_once::h8c20fbb5bf3c1dd6
  15:     0x7f218d68c8ad - rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::destructure_const>::compute::h3615046505938230
  16:     0x7f218d71cb09 - rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl::ha13979abed354d04
  17:     0x7f218d88a1b6 - rustc_data_structures::stack::ensure_sufficient_stack::hb28e752bbf70f332
  18:     0x7f218d76be7a - rustc_query_system::query::plumbing::get_query_impl::h4795959616542474
  19:     0x7f218d663492 - rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_const::h42bd810d2dabec53
  20:     0x7f218d663db3 - rustc_middle::ty::print::pretty::PrettyPrinter::pretty_print_const::h42bd810d2dabec53
  21:     0x7f218d65472c - rustc_middle::mir::pretty_print_const::hd7cbc3a530cb0234
  22:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  23:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  24:     0x7f218d89f974 - <&T as core::fmt::Debug>::fmt::h61826e44f28f4f4a
  25:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  26:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  27:     0x7f218d651aa5 - <rustc_middle::mir::Operand as core::fmt::Debug>::fmt::hf2307fe080426e27
  28:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  29:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  30:     0x7f218d65223c - <rustc_middle::mir::Rvalue as core::fmt::Debug>::fmt::hd0f3169c5295fd5a
  31:     0x7f21882e1a3d - core::fmt::write::h65255e7874586eb2
  32:     0x7f21882e2db2 - <core::fmt::Formatter as core::fmt::Write>::write_fmt::h2cfc8f96fe0dc0bb
  33:     0x7f218d6513a8 - <rustc_middle::mir::Statement as core::fmt::Debug>::fmt::hc9cc86a23e746649
  34:     0x7f21882e19aa - core::fmt::write::h65255e7874586eb2
  35:     0x7f21882bf6ca - alloc::fmt::format::hc8afcfd973bb1a1f
  36:     0x7f218c366f71 - rustc_mir::util::pretty::write_mir_pretty::h93c9145185ddab0f
  37:     0x7f218c862c23 - rustc_mir::transform::dump_mir::emit_mir::h514eb69ae7eaa045
  38:     0x7f2189de7604 - rustc_interface::passes::start_codegen::h64d9c511ec596bff
  39:     0x7f2189e156d2 - rustc_middle::ty::context::tls::enter_global::hd5d9719ecc10b8ad
  40:     0x7f2189e0b77e - rustc_interface::queries::Queries::ongoing_codegen::h5a481c30c4739353
  41:     0x7f2189c37a0b - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h46a369817e38d2d4
  42:     0x7f2189ca17ca - rustc_span::with_source_map::ha1e1d15982d868c1
  43:     0x7f2189c39b49 - rustc_interface::interface::run_compiler_in_existing_thread_pool::hfd5622ef3ce026be
  44:     0x7f2189c1334e - scoped_tls::ScopedKey<T>::set::hd3c1397285b10bd3
  45:     0x7f2189c3a576 - std::sys_common::backtrace::__rust_begin_short_backtrace::h3df4554cf04b61c9
  46:     0x7f2189c0717e - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb0a109416f61afc2
  47:     0x7f2188279d7a - std::sys::unix::thread::Thread::new::thread_start::hb2effada6f868308
  48:     0x7f2187fa0422 - start_thread
  49:     0x7f21880bebf3 - __GI___clone
  50:                0x0 - <unknown>

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.45.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=1

query stack during panic:
#0 [destructure_const] destructure constant
end of query stack

@RalfJung
Copy link
Member

RalfJung commented Jun 5, 2020

Thanks, so that's inside read_discriminant, too. Curious.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
A-mir-opt Area: MIR optimizations C-bug Category: This is a bug. F-never_type `#![feature(never_type)]` glacier ICE tracked in rust-lang/glacier. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants