Skip to content

ICE due to invalid unsizing &B -> [u8] #101596

Closed
@saethlin

Description

@saethlin

Code

https://crates.io/crates/mwatch-sdk-core version 0.1.0
The actual bug appears to be in stm32l432xx-hal but I can't seem to build that on its own. It just needs certain combinations of features.

Meta

rustc --version --verbose:

cargo 1.65.0-nightly (646e9a0b9 2022-09-02)
release: 1.65.0-nightly
commit-hash: 646e9a0b9ea8354cc409d05f10e8dc752c5de78e
commit-date: 2022-09-02
host: x86_64-unknown-linux-gnu
libgit2: 1.5.0 (sys:0.15.0 vendored)
libcurl: 7.83.1-DEV (sys:0.4.55+curl-7.83.1 vendored ssl:OpenSSL/1.1.1q)
os: Arch Linux Rolling Release [64-bit]

Error output

   Compiling stm32l432xx-hal v0.2.7
error: internal compiler error: /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/compiler/rustc_const_eval/src/interpret/cast.rs:324:17: invalid unsizing &B -> [u8]
   --> /home/ben/.cargo/registry/src/github.com-1ecc6299db9ec823/stm32l432xx-hal-0.2.7/src/serial.rs:243:45
    |
243 |                           let buffer: &[u8] = &buffer[0];
    |                                               ^^^^^^^^^^
...
315 | / hal! {
316 | |     USART1: (usart1, APB2, usart1en, usart1rst, pclk2, tx: (c4s, dma1::C4), rx: (c5s, dma1::C5)),
317 | |     USART2: (usart2, APB1R1, usart2en, usart2rst, pclk1, tx: (c7s, dma1::C7), rx: (c6s, dma1::C6)),
318 | | }
    | |_- in this macro invocation
    |
    = note: this error: internal compiler error originates in the macro `hal` (in Nightly builds, run with -Z macro-backtrace for more info)

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/compiler/rustc_errors/src/lib.rs:1398:9
Backtrace

stack backtrace:
   0:     0x7fbdd3390210 - std::backtrace_rs::backtrace::libunwind::trace::hddd5e6b1b5e0cf84
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7fbdd3390210 - std::backtrace_rs::backtrace::trace_unsynchronized::h1e30619f2b1dfc7e
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fbdd3390210 - std::sys_common::backtrace::_print_fmt::h1c57dbed6b9e39aa
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7fbdd3390210 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h81e97128ef1d32f9
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7fbdd33eb02e - core::fmt::write::h05bb200d128bd301
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/core/src/fmt/mod.rs:1202:17
   5:     0x7fbdd3380cd5 - std::io::Write::write_fmt::hc8d8769ac02ad98c
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/io/mod.rs:1679:15
   6:     0x7fbdd3392e63 - std::sys_common::backtrace::_print::h7f10095fdc95f046
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7fbdd3392e63 - std::sys_common::backtrace::print::hff7966088cd7ef66
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7fbdd3392e63 - std::panicking::default_hook::{{closure}}::h5cfa206e6d48c088
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/panicking.rs:295:22
   9:     0x7fbdd3392b4f - std::panicking::default_hook::h75a6d8252dff2ced
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/panicking.rs:314:9
  10:     0x7fbdd1dec9d1 - rustc_driver[4dbe72ff95e91a37]::DEFAULT_HOOK::{closure#0}::{closure#0}
  11:     0x7fbdd339369d - std::panicking::rust_panic_with_hook::h119231c709fbe31a
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/panicking.rs:702:17
  12:     0x7fbdd2051101 - std[229541c32b9def22]::panicking::begin_panic::<rustc_errors[5d6420c66e5c3514]::ExplicitBug>::{closure#0}
  13:     0x7fbdd204c266 - std[229541c32b9def22]::sys_common::backtrace::__rust_end_short_backtrace::<std[229541c32b9def22]::panicking::begin_panic<rustc_errors[5d6420c66e5c3514]::ExplicitBug>::{closure#0}, !>
  14:     0x7fbdd204c1e6 - std[229541c32b9def22]::panicking::begin_panic::<rustc_errors[5d6420c66e5c3514]::ExplicitBug>
  15:     0x7fbdd2096426 - std[229541c32b9def22]::panic::panic_any::<rustc_errors[5d6420c66e5c3514]::ExplicitBug>
  16:     0x7fbdd2093351 - <rustc_errors[5d6420c66e5c3514]::HandlerInner>::span_bug::<rustc_span[ddb8e6977b977c82]::span_encoding::Span, &alloc[aa703239628d5152]::string::String>
  17:     0x7fbdd20930c0 - <rustc_errors[5d6420c66e5c3514]::Handler>::span_bug::<rustc_span[ddb8e6977b977c82]::span_encoding::Span, &alloc[aa703239628d5152]::string::String>
  18:     0x7fbdd20c03b8 - rustc_middle[758666f836ad6aa6]::ty::context::tls::with_context_opt::<rustc_middle[758666f836ad6aa6]::ty::context::tls::with_opt<rustc_middle[758666f836ad6aa6]::util::bug::opt_span_bug_fmt<rustc_span[ddb8e6977b977c82]::span_encoding::Span>::{closure#0}, ()>::{closure#0}, ()>
  19:     0x7fbdd20c0186 - rustc_middle[758666f836ad6aa6]::util::bug::opt_span_bug_fmt::<rustc_span[ddb8e6977b977c82]::span_encoding::Span>
  20:     0x7fbdd20c0144 - rustc_middle[758666f836ad6aa6]::util::bug::span_bug_fmt::<rustc_span[ddb8e6977b977c82]::span_encoding::Span>
  21:     0x7fbdd14299c4 - <rustc_const_eval[28d056de1464251a]::interpret::eval_context::InterpCx<rustc_mir_transform[c5d627961322feb1]::const_prop::ConstPropMachine>>::unsize_into_ptr
  22:     0x7fbdd140fc24 - <rustc_const_eval[28d056de1464251a]::interpret::eval_context::InterpCx<rustc_mir_transform[c5d627961322feb1]::const_prop::ConstPropMachine>>::eval_rvalue_into_place
  23:     0x7fbdd1459947 - <rustc_mir_transform[c5d627961322feb1]::const_prop_lint::ConstPropagator as rustc_middle[758666f836ad6aa6]::mir::visit::Visitor>::visit_body
  24:     0x7fbdd144e71b - <rustc_mir_transform[c5d627961322feb1]::const_prop_lint::ConstProp as rustc_mir_transform[c5d627961322feb1]::pass_manager::MirLint>::run_lint
  25:     0x7fbdd088ab0a - rustc_mir_transform[c5d627961322feb1]::pass_manager::run_passes_no_validate
  26:     0x7fbdd0883d94 - rustc_mir_transform[c5d627961322feb1]::run_analysis_to_runtime_passes
  27:     0x7fbdd0882da1 - rustc_mir_transform[c5d627961322feb1]::mir_drops_elaborated_and_const_checked
  28:     0x7fbdd1442dea - rustc_query_system[8ebe6a0948a4385f]::query::plumbing::try_execute_query::<rustc_query_impl[6916c8c26a692c23]::plumbing::QueryCtxt, rustc_query_system[8ebe6a0948a4385f]::query::caches::DefaultCache<rustc_middle[758666f836ad6aa6]::ty::WithOptConstParam<rustc_span[ddb8e6977b977c82]::def_id::LocalDefId>, &rustc_data_structures[8a62cfd2b2cae70a]::steal::Steal<rustc_middle[758666f836ad6aa6]::mir::Body>>>
  29:     0x7fbdd1d2a94c - <rustc_query_impl[6916c8c26a692c23]::Queries as rustc_middle[758666f836ad6aa6]::ty::query::QueryEngine>::mir_drops_elaborated_and_const_checked
  30:     0x7fbdd08e975b - rustc_mir_transform[c5d627961322feb1]::optimized_mir
  31:     0x7fbdd0e2ce89 - rustc_query_system[8ebe6a0948a4385f]::query::plumbing::try_execute_query::<rustc_query_impl[6916c8c26a692c23]::plumbing::QueryCtxt, rustc_query_system[8ebe6a0948a4385f]::query::caches::DefaultCache<rustc_span[ddb8e6977b977c82]::def_id::DefId, &rustc_middle[758666f836ad6aa6]::mir::Body>>
  32:     0x7fbdd1d2ad71 - <rustc_query_impl[6916c8c26a692c23]::Queries as rustc_middle[758666f836ad6aa6]::ty::query::QueryEngine>::optimized_mir
  33:     0x7fbdd10b0e31 - <rustc_metadata[2c12d96414b174f7]::rmeta::encoder::EncodeContext>::encode_crate_root
  34:     0x7fbdd0c1a9d2 - rustc_metadata[2c12d96414b174f7]::rmeta::encoder::encode_metadata_impl
  35:     0x7fbdd0bf818e - rustc_data_structures[8a62cfd2b2cae70a]::sync::join::<rustc_metadata[2c12d96414b174f7]::rmeta::encoder::encode_metadata::{closure#0}, rustc_metadata[2c12d96414b174f7]::rmeta::encoder::encode_metadata::{closure#1}, (), ()>
  36:     0x7fbdd0bf8079 - rustc_metadata[2c12d96414b174f7]::rmeta::encoder::encode_metadata
  37:     0x7fbdd0bf718d - rustc_metadata[2c12d96414b174f7]::fs::encode_and_write_metadata
  38:     0x7fbdd0bee862 - <rustc_interface[14c34b33c6f785f8]::passes::QueryContext>::enter::<<rustc_interface[14c34b33c6f785f8]::queries::Queries>::ongoing_codegen::{closure#0}::{closure#0}, core[178bf54443111ecd]::result::Result<alloc[aa703239628d5152]::boxed::Box<dyn core[178bf54443111ecd]::any::Any>, rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>
  39:     0x7fbdd0baef03 - <rustc_interface[14c34b33c6f785f8]::queries::Queries>::ongoing_codegen
  40:     0x7fbdd0bad33d - rustc_interface[14c34b33c6f785f8]::interface::create_compiler_and_run::<core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>, rustc_driver[4dbe72ff95e91a37]::run_compiler::{closure#1}>
  41:     0x7fbdd0babc51 - <scoped_tls[c74ddbab68ad7cb1]::ScopedKey<rustc_span[ddb8e6977b977c82]::SessionGlobals>>::set::<rustc_interface[14c34b33c6f785f8]::interface::run_compiler<core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>, rustc_driver[4dbe72ff95e91a37]::run_compiler::{closure#1}>::{closure#0}, core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>
  42:     0x7fbdd0bab93f - std[229541c32b9def22]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[14c34b33c6f785f8]::util::run_in_thread_pool_with_globals<rustc_interface[14c34b33c6f785f8]::interface::run_compiler<core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>, rustc_driver[4dbe72ff95e91a37]::run_compiler::{closure#1}>::{closure#0}, core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>::{closure#0}, core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>
  43:     0x7fbdd1c613b9 - <<std[229541c32b9def22]::thread::Builder>::spawn_unchecked_<rustc_interface[14c34b33c6f785f8]::util::run_in_thread_pool_with_globals<rustc_interface[14c34b33c6f785f8]::interface::run_compiler<core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>, rustc_driver[4dbe72ff95e91a37]::run_compiler::{closure#1}>::{closure#0}, core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>::{closure#0}, core[178bf54443111ecd]::result::Result<(), rustc_errors[5d6420c66e5c3514]::ErrorGuaranteed>>::{closure#1} as core[178bf54443111ecd]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  44:     0x7fbdd339d4f3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h36c6bf5e47e96783
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/alloc/src/boxed.rs:1940:9
  45:     0x7fbdd339d4f3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h145bc1ef077d35d5
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/alloc/src/boxed.rs:1940:9
  46:     0x7fbdd339d4f3 - std::sys::unix::thread::Thread::new::thread_start::h9922d7fa7807ef1d
                               at /rustc/c2804e6ec2c29a5c7368600ea173b890e2655c3d/library/std/src/sys/unix/thread.rs:108:17
  47:     0x7fbdcf37a78d - <unknown>
  48:     0x7fbdcf3fb8e4 - clone
  49:                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.65.0-nightly (c2804e6ec 2022-09-07) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2 -C linker=clang -C link-arg=-fuse-ld=mold

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [mir_drops_elaborated_and_const_checked] elaborating drops for `serial::<impl at /home/ben/.cargo/registry/src/github.com-1ecc6299db9ec823/stm32l432xx-hal-0.2.7/src/serial.rs:233:13: 233:29>::circ_read`
#1 [optimized_mir] optimizing MIR for `serial::<impl at /home/ben/.cargo/registry/src/github.com-1ecc6299db9ec823/stm32l432xx-hal-0.2.7/src/serial.rs:233:13: 233:29>::circ_read`
end of query stack

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-const-propArea: Constant propagationC-bugCategory: This is a bug.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.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions