Skip to content

ICE: library/core/src/slice/index.rs:73:5: out of range slice #96259

Closed

Description

Code

Minimal "readable" code:

#[derive(Print)]
struct Foo<#[cfg] A, B> {
    third: [u8; {
        #[cfg] let a =      #[cfg] u8, #[] bool,

via comby-reducer

Truly minimized:

#[derive(P]struct o<#[cfg]B>{t:[0;{#[cfg]let 0=#[cfg]0,

via afl-tmin on the above

Meta

On nightly

rustc --version --verbose:

rustc 1.62.0-nightly (4ca19e09d 2022-04-19)
binary: rustc
commit-hash: 4ca19e09d302a4cbde14f9cb1bc109179dc824cd
commit-date: 2022-04-19
host: x86_64-unknown-linux-gnu
release: 1.62.0-nightly
LLVM version: 14.0.1

Error output

thread 'rustc' panicked at 'range end index 9 out of range for slice of length 8', library/core/src/slice/index.rs:73:5
Backtrace

stack backtrace:
   0:     0x7f8835ae385d - std::backtrace_rs::backtrace::libunwind::trace::hd79e9b51bb0b02a3
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7f8835ae385d - std::backtrace_rs::backtrace::trace_unsynchronized::hc4b2624d11f57391
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7f8835ae385d - std::sys_common::backtrace::_print_fmt::h5b920b6df28041d5
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7f8835ae385d - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h01f2db48eea34166
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7f8835b3eefc - core::fmt::write::h743b8fce003c331c
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/fmt/mod.rs:1194:17
   5:     0x7f8835ad5041 - std::io::Write::write_fmt::h55edc38b905db9b5
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/io/mod.rs:1655:15
   6:     0x7f8835ae6575 - std::sys_common::backtrace::_print::h72c54a6b7a86b7bf
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7f8835ae6575 - std::sys_common::backtrace::print::h8b541992f5fa33c9
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7f8835ae6575 - std::panicking::default_hook::{{closure}}::h47e8a61e5844dea4
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/panicking.rs:295:22
   9:     0x7f8835ae61e9 - std::panicking::default_hook::h65ae1796882c178c
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/panicking.rs:314:9
  10:     0x7f88362845a1 - rustc_driver[caca827775d68846]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7f8835ae6d46 - std::panicking::rust_panic_with_hook::h1c3eee211b989bad
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/panicking.rs:702:17
  12:     0x7f8835ae6b47 - std::panicking::begin_panic_handler::{{closure}}::h653627205f5b2cdc
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/panicking.rs:588:13
  13:     0x7f8835ae3d14 - std::sys_common::backtrace::__rust_end_short_backtrace::h36d845a914b6aae7
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys_common/backtrace.rs:138:18
  14:     0x7f8835ae6879 - rust_begin_unwind
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/panicking.rs:584:5
  15:     0x7f8835aabbd3 - core::panicking::panic_fmt::hb6389d787a80a806
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/panicking.rs:142:14
  16:     0x7f8835b41656 - core::slice::index::slice_end_index_len_fail_rt::he7be6edaae32d23c
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/slice/index.rs:73:5
  17:     0x7f8835b33a37 - core::ops::function::FnOnce::call_once::h620bfc375d5c0e55
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/ops/function.rs:248:5
  18:     0x7f8835b3a3c6 - core::intrinsics::const_eval_select::h02c57ce24d1aade4
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/intrinsics.rs:2370:5
  19:     0x7f8835aabce6 - core::slice::index::slice_end_index_len_fail::hac0d918f9000e153
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/core/src/slice/index.rs:67:9
  20:     0x7f8837f73328 - <rustc_parse[58f4b13f8d1bf4e]::parser::attr_wrapper::LazyTokenStreamImpl as rustc_ast[5660607621a98d76]::tokenstream::CreateTokenStream>::create_token_stream
  21:     0x7f8838978a35 - <&mut <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0} as core[864d7ae58f623181]::ops::function::FnOnce<(&(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing),)>>::call_once
  22:     0x7f8838998d0e - <alloc[642b2cd0ec1e1a81]::vec::Vec<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)> as alloc[642b2cd0ec1e1a81]::vec::spec_from_iter::SpecFromIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing), core[864d7ae58f623181]::iter::adapters::flatten::FlatMap<core[864d7ae58f623181]::slice::iter::Iter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, core[864d7ae58f623181]::option::IntoIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0}>>>::from_iter
  23:     0x7f8838978b39 - <&mut <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0} as core[864d7ae58f623181]::ops::function::FnOnce<(&(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing),)>>::call_once
  24:     0x7f8838998eeb - <alloc[642b2cd0ec1e1a81]::vec::Vec<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)> as alloc[642b2cd0ec1e1a81]::vec::spec_from_iter::SpecFromIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing), core[864d7ae58f623181]::iter::adapters::flatten::FlatMap<core[864d7ae58f623181]::slice::iter::Iter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, core[864d7ae58f623181]::option::IntoIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0}>>>::from_iter
  25:     0x7f8838978b39 - <&mut <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0} as core[864d7ae58f623181]::ops::function::FnOnce<(&(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing),)>>::call_once
  26:     0x7f8838998eeb - <alloc[642b2cd0ec1e1a81]::vec::Vec<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)> as alloc[642b2cd0ec1e1a81]::vec::spec_from_iter::SpecFromIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing), core[864d7ae58f623181]::iter::adapters::flatten::FlatMap<core[864d7ae58f623181]::slice::iter::Iter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, core[864d7ae58f623181]::option::IntoIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0}>>>::from_iter
  27:     0x7f8838978b39 - <&mut <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0} as core[864d7ae58f623181]::ops::function::FnOnce<(&(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing),)>>::call_once
  28:     0x7f8838998eeb - <alloc[642b2cd0ec1e1a81]::vec::Vec<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)> as alloc[642b2cd0ec1e1a81]::vec::spec_from_iter::SpecFromIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing), core[864d7ae58f623181]::iter::adapters::flatten::FlatMap<core[864d7ae58f623181]::slice::iter::Iter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, core[864d7ae58f623181]::option::IntoIter<(rustc_ast[5660607621a98d76]::tokenstream::AttrAnnotatedTokenTree, rustc_ast[5660607621a98d76]::tokenstream::Spacing)>, <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens::{closure#0}>>>::from_iter
  29:     0x7f883897c11a - <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure_tokens
  30:     0x7f88384de785 - <rustc_expand[8eb2b2253b629b81]::config::StripUnconfigured>::configure::<rustc_ast[5660607621a98d76]::ptr::P<rustc_ast[5660607621a98d76]::ast::Item>>
  31:     0x7f88384f63ae - rustc_builtin_macros[1cc46f8d8581203a]::cfg_eval::cfg_eval
  32:     0x7f88384f7751 - <rustc_builtin_macros[1cc46f8d8581203a]::derive::Expander as rustc_expand[8eb2b2253b629b81]::base::MultiItemModifier>::expand::{closure#0}
  33:     0x7f88385ec371 - <rustc_resolve[2d23a0f91d06c8ab]::Resolver as rustc_expand[8eb2b2253b629b81]::base::ResolverExpand>::resolve_derives
  34:     0x7f88384f731b - <rustc_builtin_macros[1cc46f8d8581203a]::derive::Expander as rustc_expand[8eb2b2253b629b81]::base::MultiItemModifier>::expand
  35:     0x7f8837e9b7f9 - <rustc_expand[8eb2b2253b629b81]::expand::MacroExpander>::fully_expand_fragment
  36:     0x7f88389a0c8e - <rustc_expand[8eb2b2253b629b81]::expand::MacroExpander>::expand_crate
  37:     0x7f88382d32c4 - <rustc_session[ce05394807c68a98]::session::Session>::time::<core[864d7ae58f623181]::result::Result<rustc_ast[5660607621a98d76]::ast::Crate, rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_interface[dacacaf3651fe347]::passes::configure_and_expand::{closure#1}>
  38:     0x7f88382cdc22 - rustc_interface[dacacaf3651fe347]::passes::configure_and_expand
  39:     0x7f88382f5e17 - <rustc_interface[dacacaf3651fe347]::queries::Queries>::expansion
  40:     0x7f88382989b9 - <rustc_interface[dacacaf3651fe347]::interface::Compiler>::enter::<rustc_driver[caca827775d68846]::run_compiler::{closure#1}::{closure#2}, core[864d7ae58f623181]::result::Result<core[864d7ae58f623181]::option::Option<rustc_interface[dacacaf3651fe347]::queries::Linker>, rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>
  41:     0x7f88382c23ff - rustc_span[ff646084812721ee]::with_source_map::<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_interface[dacacaf3651fe347]::interface::create_compiler_and_run<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_driver[caca827775d68846]::run_compiler::{closure#1}>::{closure#1}>
  42:     0x7f88382acd64 - rustc_interface[dacacaf3651fe347]::interface::create_compiler_and_run::<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_driver[caca827775d68846]::run_compiler::{closure#1}>
  43:     0x7f8838295fa1 - <scoped_tls[d6203f3b3010b98e]::ScopedKey<rustc_span[ff646084812721ee]::SessionGlobals>>::set::<rustc_interface[dacacaf3651fe347]::interface::run_compiler<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_driver[caca827775d68846]::run_compiler::{closure#1}>::{closure#0}, core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>
  44:     0x7f88382af54f - std[fd2a1eaf3e081d4d]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[dacacaf3651fe347]::util::run_in_thread_pool_with_globals<rustc_interface[dacacaf3651fe347]::interface::run_compiler<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_driver[caca827775d68846]::run_compiler::{closure#1}>::{closure#0}, core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>::{closure#0}, core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>
  45:     0x7f88382af689 - <<std[fd2a1eaf3e081d4d]::thread::Builder>::spawn_unchecked_<rustc_interface[dacacaf3651fe347]::util::run_in_thread_pool_with_globals<rustc_interface[dacacaf3651fe347]::interface::run_compiler<core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>, rustc_driver[caca827775d68846]::run_compiler::{closure#1}>::{closure#0}, core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>::{closure#0}, core[864d7ae58f623181]::result::Result<(), rustc_errors[14f27e81a88a2c7]::ErrorGuaranteed>>::{closure#1} as core[864d7ae58f623181]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  46:     0x7f8835af0bf3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h211dae6d8dec3611
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/alloc/src/boxed.rs:1866:9
  47:     0x7f8835af0bf3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb54334e8a7bb1f12
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/alloc/src/boxed.rs:1866:9
  48:     0x7f8835af0bf3 - std::sys::unix::thread::Thread::new::thread_start::hf8b57655f2f2e68e
                               at /rustc/4ca19e09d302a4cbde14f9cb1bc109179dc824cd/library/std/src/sys/unix/thread.rs:108:17
  49:     0x7f883562a6db - start_thread
                               at /build/glibc-S9d2JN/glibc-2.27/nptl/pthread_create.c:463
  50:     0x7f883514b71f - __GI___clone
                               at /build/glibc-S9d2JN/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  51:                0x0 - <unknown>

Notes

I searched through ICE issues and believe this is not a duplicate, but let me know! Found with compiler fuzzing tools comby-decomposer and afl-compiler-fuzzer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.E-needs-testCall for participation: An issue has been fixed and does not reproduce, but no test has been added.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.glacierICE tracked in rust-lang/glacier.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions