Skip to content

ICE due to bad sized to unsized pointer cast in const item #115998

Description

@AidoP

Code

pub struct Data([u8]);
const _: &'static Data = unsafe { &*(&[] as *const Data) };

Playgrounds

Meta

rustc --version --verbose:

rustc 1.72.1 (d5c2e9c34 2023-09-13)
binary: rustc
commit-hash: d5c2e9c342b358556da91d61ed4133f6f50fc0c3
commit-date: 2023-09-13
host: x86_64-unknown-linux-gnu
release: 1.72.1
LLVM version: 16.0.5

On playgrounds it seemed to affect release and debug for stable, nightly and beta.

Error output

error: internal compiler error: compiler/rustc_const_eval/src/interpret/place.rs:36:17: expected wide pointer extra data (e.g. slice length or trait object vtable)
Backtrace

lorix ~ %RUST_BACKTRACE=full rustc --crate-type lib ice.rs                                                                                                                                              returned 101
error: internal compiler error: compiler/rustc_const_eval/src/interpret/place.rs:36:17: expected wide pointer extra data (e.g. slice length or trait object vtable)

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/compiler/rustc_errors/src/lib.rs:1651:9
stack backtrace:
   0:     0x7fba78362b51 - std::backtrace_rs::backtrace::libunwind::trace::h66dc1c6acf794faa
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fba78362b51 - std::backtrace_rs::backtrace::trace_unsynchronized::ha80d20099a67f790
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fba78362b51 - std::sys_common::backtrace::_print_fmt::h7b959d43f35f16d4
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fba78362b51 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hdaa196410d9ee0b9
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fba783c96ff - core::fmt::rt::Argument::fmt::h0ddfbbe8be3f80d0
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/fmt/rt.rs:138:9
   5:     0x7fba783c96ff - core::fmt::write::h66b3c629f3d623e4
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/core/src/fmt/mod.rs:1094:21
   6:     0x7fba78355497 - std::io::Write::write_fmt::hb6d80fba4115e0c2
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/io/mod.rs:1714:15
   7:     0x7fba78362965 - std::sys_common::backtrace::_print::h1a49cfb0cf3cce17
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fba78362965 - std::sys_common::backtrace::print::hca95c2d0055e42a2
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fba78365743 - std::panicking::default_hook::{{closure}}::hc03c01c56bca600c
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:269:22
  10:     0x7fba783654d4 - std::panicking::default_hook::hb2cb5315b6634f1c
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:288:9
  11:     0x7fba7b66b60b - rustc_driver_impl[e91af841be79713a]::install_ice_hook::{closure#0}
  12:     0x7fba78365f6e - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hb3a915ffd78277c6
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/alloc/src/boxed.rs:2007:9
  13:     0x7fba78365f6e - std::panicking::rust_panic_with_hook::h75cd912a39a34e8a
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/panicking.rs:709:13
  14:     0x7fba7bc22921 - std[74d10c9f32099e86]::panicking::begin_panic::<rustc_errors[db744a5925f28741]::ExplicitBug>::{closure#0}
  15:     0x7fba7bc214b6 - std[74d10c9f32099e86]::sys_common::backtrace::__rust_end_short_backtrace::<std[74d10c9f32099e86]::panicking::begin_panic<rustc_errors[db744a5925f28741]::ExplicitBug>::{closure#0}, !>
  16:     0x7fba7bbce646 - std[74d10c9f32099e86]::panicking::begin_panic::<rustc_errors[db744a5925f28741]::ExplicitBug>
  17:     0x7fba7bb896d4 - <rustc_errors[db744a5925f28741]::HandlerInner>::bug::<alloc[1f40c6002c873f6d]::string::String>
  18:     0x7fba7bb89556 - <rustc_errors[db744a5925f28741]::Handler>::bug::<alloc[1f40c6002c873f6d]::string::String>
  19:     0x7fba7bb636cc - rustc_middle[fbd75b4db2cdb7e6]::util::bug::opt_span_bug_fmt::<rustc_span[ca0c6fb73220b455]::span_encoding::Span>::{closure#0}
  20:     0x7fba7bb5efba - rustc_middle[fbd75b4db2cdb7e6]::ty::context::tls::with_opt::<rustc_middle[fbd75b4db2cdb7e6]::util::bug::opt_span_bug_fmt<rustc_span[ca0c6fb73220b455]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7fba7bb5ef8a - rustc_middle[fbd75b4db2cdb7e6]::ty::context::tls::with_context_opt::<rustc_middle[fbd75b4db2cdb7e6]::ty::context::tls::with_opt<rustc_middle[fbd75b4db2cdb7e6]::util::bug::opt_span_bug_fmt<rustc_span[ca0c6fb73220b455]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7fba79da9efd - rustc_middle[fbd75b4db2cdb7e6]::util::bug::bug_fmt
  23:     0x7fba79ad4ab6 - <rustc_const_eval[88869f152bb01255]::interpret::eval_context::InterpCx<rustc_const_eval[88869f152bb01255]::const_eval::machine::CompileTimeInterpreter>>::size_and_align_of
  24:     0x7fba79ad480b - <rustc_const_eval[88869f152bb01255]::interpret::eval_context::InterpCx<rustc_const_eval[88869f152bb01255]::const_eval::machine::CompileTimeInterpreter>>::size_and_align_of
  25:     0x7fba79a6fe05 - <rustc_const_eval[88869f152bb01255]::interpret::eval_context::InterpCx<rustc_const_eval[88869f152bb01255]::const_eval::machine::CompileTimeInterpreter>>::statement
  26:     0x7fba79a6a59a - rustc_const_eval[88869f152bb01255]::const_eval::eval_queries::eval_to_allocation_raw_provider
  27:     0x7fba796cc0c7 - rustc_query_impl[e7af9ba2ee20c49a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_allocation_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 16usize]>>
  28:     0x7fba7a289f2c - rustc_query_system[8b63fd0ca5778b73]::query::plumbing::try_execute_query::<rustc_query_impl[e7af9ba2ee20c49a]::DynamicConfig<rustc_query_system[8b63fd0ca5778b73]::query::caches::DefaultCache<rustc_middle[fbd75b4db2cdb7e6]::ty::ParamEnvAnd<rustc_middle[fbd75b4db2cdb7e6]::mir::interpret::GlobalId>, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 16usize]>>, false, false, false>, rustc_query_impl[e7af9ba2ee20c49a]::plumbing::QueryCtxt, false>
  29:     0x7fba7a289bed - rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_allocation_raw::get_query_non_incr::__rust_end_short_backtrace
  30:     0x7fba7aa9ceb6 - rustc_const_eval[88869f152bb01255]::const_eval::eval_queries::eval_to_const_value_raw_provider
  31:     0x7fba79689c87 - rustc_query_impl[e7af9ba2ee20c49a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_const_value_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 32usize]>>
  32:     0x7fba7a2b1bdb - rustc_query_system[8b63fd0ca5778b73]::query::plumbing::try_execute_query::<rustc_query_impl[e7af9ba2ee20c49a]::DynamicConfig<rustc_query_system[8b63fd0ca5778b73]::query::caches::DefaultCache<rustc_middle[fbd75b4db2cdb7e6]::ty::ParamEnvAnd<rustc_middle[fbd75b4db2cdb7e6]::mir::interpret::GlobalId>, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[e7af9ba2ee20c49a]::plumbing::QueryCtxt, false>
  33:     0x7fba7a2b17cd - rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_const_value_raw::get_query_non_incr::__rust_end_short_backtrace
  34:     0x7fba7aa9c614 - rustc_const_eval[88869f152bb01255]::const_eval::eval_queries::eval_to_const_value_raw_provider
  35:     0x7fba79689c87 - rustc_query_impl[e7af9ba2ee20c49a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_const_value_raw::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 32usize]>>
  36:     0x7fba7a2b1bdb - rustc_query_system[8b63fd0ca5778b73]::query::plumbing::try_execute_query::<rustc_query_impl[e7af9ba2ee20c49a]::DynamicConfig<rustc_query_system[8b63fd0ca5778b73]::query::caches::DefaultCache<rustc_middle[fbd75b4db2cdb7e6]::ty::ParamEnvAnd<rustc_middle[fbd75b4db2cdb7e6]::mir::interpret::GlobalId>, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 32usize]>>, false, false, false>, rustc_query_impl[e7af9ba2ee20c49a]::plumbing::QueryCtxt, false>
  37:     0x7fba7a2b17cd - rustc_query_impl[e7af9ba2ee20c49a]::query_impl::eval_to_const_value_raw::get_query_non_incr::__rust_end_short_backtrace
  38:     0x7fba7973f46c - <rustc_middle[fbd75b4db2cdb7e6]::query::plumbing::TyCtxtEnsure>::const_eval_poly
  39:     0x7fba7973a4f3 - <rustc_lint[8d94bab7becf7711]::BuiltinCombinedModuleLateLintPass as rustc_lint[8d94bab7becf7711]::passes::LateLintPass>::check_item
  40:     0x7fba79736a21 - rustc_hir[7b007da93fd56bed]::intravisit::walk_mod::<rustc_lint[8d94bab7becf7711]::late::LateContextAndPass<rustc_lint[8d94bab7becf7711]::BuiltinCombinedModuleLateLintPass>>
  41:     0x7fba79736336 - rustc_lint[8d94bab7becf7711]::late::late_lint_mod::<rustc_lint[8d94bab7becf7711]::BuiltinCombinedModuleLateLintPass>
  42:     0x7fba797360ec - rustc_lint[8d94bab7becf7711]::lint_mod
  43:     0x7fba7a2b356c - rustc_query_impl[e7af9ba2ee20c49a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[e7af9ba2ee20c49a]::query_impl::lint_mod::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 0usize]>>
  44:     0x7fba7a2b354e - <rustc_query_impl[e7af9ba2ee20c49a]::query_impl::lint_mod::dynamic_query::{closure#2} as core[63ccc595abf60ca6]::ops::function::FnOnce<(rustc_middle[fbd75b4db2cdb7e6]::ty::context::TyCtxt, rustc_span[ca0c6fb73220b455]::def_id::LocalDefId)>>::call_once
  45:     0x7fba79d71cff - rustc_query_system[8b63fd0ca5778b73]::query::plumbing::try_execute_query::<rustc_query_impl[e7af9ba2ee20c49a]::DynamicConfig<rustc_query_system[8b63fd0ca5778b73]::query::caches::VecCache<rustc_span[ca0c6fb73220b455]::def_id::LocalDefId, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 0usize]>>, false, false, false>, rustc_query_impl[e7af9ba2ee20c49a]::plumbing::QueryCtxt, false>
  46:     0x7fba7afe1754 - rustc_query_impl[e7af9ba2ee20c49a]::query_impl::lint_mod::get_query_non_incr::__rust_end_short_backtrace
  47:     0x7fba7aa2af17 - rustc_data_structures[bf281432ed14a641]::sync::par_for_each_in::<&[rustc_hir[7b007da93fd56bed]::hir_id::OwnerId], <rustc_middle[fbd75b4db2cdb7e6]::hir::map::Map>::par_for_each_module<rustc_lint[8d94bab7becf7711]::late::check_crate<rustc_lint[8d94bab7becf7711]::BuiltinCombinedLateLintPass, rustc_interface[9522ab489a5f66e6]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#1}::{closure#0}::{closure#0}>::{closure#0}>
  48:     0x7fba7aa2ac65 - <rustc_session[7bc6f0e7ff11a78e]::session::Session>::time::<(), rustc_lint[8d94bab7becf7711]::late::check_crate<rustc_lint[8d94bab7becf7711]::BuiltinCombinedLateLintPass, rustc_interface[9522ab489a5f66e6]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}::{closure#0}>::{closure#1}::{closure#0}>
  49:     0x7fba7aa2a89e - <rustc_session[7bc6f0e7ff11a78e]::session::Session>::time::<(), rustc_interface[9522ab489a5f66e6]::passes::analysis::{closure#5}::{closure#1}::{closure#2}::{closure#0}>
  50:     0x7fba7aa2a3bf - <core[63ccc595abf60ca6]::panic::unwind_safe::AssertUnwindSafe<rustc_interface[9522ab489a5f66e6]::passes::analysis::{closure#5}::{closure#1}> as core[63ccc595abf60ca6]::ops::function::FnOnce<()>>::call_once
  51:     0x7fba7aa29db0 - <rustc_session[7bc6f0e7ff11a78e]::session::Session>::time::<(), rustc_interface[9522ab489a5f66e6]::passes::analysis::{closure#5}>
  52:     0x7fba7aa28887 - rustc_interface[9522ab489a5f66e6]::passes::analysis
  53:     0x7fba7aa8f3ea - rustc_query_impl[e7af9ba2ee20c49a]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[e7af9ba2ee20c49a]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 1usize]>>
  54:     0x7fba7aa8f3d9 - <rustc_query_impl[e7af9ba2ee20c49a]::query_impl::analysis::dynamic_query::{closure#2} as core[63ccc595abf60ca6]::ops::function::FnOnce<(rustc_middle[fbd75b4db2cdb7e6]::ty::context::TyCtxt, ())>>::call_once
  55:     0x7fba7acae458 - rustc_query_system[8b63fd0ca5778b73]::query::plumbing::try_execute_query::<rustc_query_impl[e7af9ba2ee20c49a]::DynamicConfig<rustc_query_system[8b63fd0ca5778b73]::query::caches::SingleCache<rustc_middle[fbd75b4db2cdb7e6]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[e7af9ba2ee20c49a]::plumbing::QueryCtxt, false>
  56:     0x7fba7acae229 - rustc_query_impl[e7af9ba2ee20c49a]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  57:     0x7fba7ab238e2 - <rustc_interface[9522ab489a5f66e6]::queries::QueryResult<&rustc_middle[fbd75b4db2cdb7e6]::ty::context::GlobalCtxt>>::enter::<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}::{closure#2}::{closure#4}>
  58:     0x7fba7ab22587 - <rustc_interface[9522ab489a5f66e6]::interface::Compiler>::enter::<rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}::{closure#2}, core[63ccc595abf60ca6]::result::Result<core[63ccc595abf60ca6]::option::Option<rustc_interface[9522ab489a5f66e6]::queries::Linker>, rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>
  59:     0x7fba7ab1f7b5 - rustc_span[ca0c6fb73220b455]::set_source_map::<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_interface[9522ab489a5f66e6]::interface::run_compiler<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}>::{closure#0}::{closure#0}>
  60:     0x7fba7ab1f226 - <scoped_tls[35a2f59988e0a19c]::ScopedKey<rustc_span[ca0c6fb73220b455]::SessionGlobals>>::set::<rustc_interface[9522ab489a5f66e6]::interface::run_compiler<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}>::{closure#0}, core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>
  61:     0x7fba7ab1e7ec - std[74d10c9f32099e86]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[9522ab489a5f66e6]::util::run_in_thread_pool_with_globals<rustc_interface[9522ab489a5f66e6]::interface::run_compiler<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}>::{closure#0}, core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>
  62:     0x7fba7aea53b5 - <<std[74d10c9f32099e86]::thread::Builder>::spawn_unchecked_<rustc_interface[9522ab489a5f66e6]::util::run_in_thread_pool_with_globals<rustc_interface[9522ab489a5f66e6]::interface::run_compiler<core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>, rustc_driver_impl[e91af841be79713a]::run_compiler::{closure#1}>::{closure#0}, core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[63ccc595abf60ca6]::result::Result<(), rustc_span[ca0c6fb73220b455]::ErrorGuaranteed>>::{closure#1} as core[63ccc595abf60ca6]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  63:     0x7fba78370425 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hde6e666388faa495
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/alloc/src/boxed.rs:1993:9
  64:     0x7fba78370425 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9b6389e489a4842f
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/alloc/src/boxed.rs:1993:9
  65:     0x7fba78370425 - std::sys::unix::thread::Thread::new::thread_start::hcab660740b858b1f
                               at /rustc/d5c2e9c342b358556da91d61ed4133f6f50fc0c3/library/std/src/sys/unix/thread.rs:108:17
  66:     0x7fba7808c9eb - <unknown>
  67:     0x7fba78110dfc - <unknown>
  68:                0x0 - <unknown>

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.72.1 (d5c2e9c34 2023-09-13) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib

query stack during panic:
#0 [eval_to_allocation_raw] const-evaluating + checking `_`
#1 [eval_to_const_value_raw] simplifying constant for the type system `_`
#2 [eval_to_const_value_raw] simplifying constant for the type system `_`
#3 [lint_mod] linting top-level module
#4 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-mediumMedium priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-stablePerformance or correctness regression from one stable version to another.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions