Skip to content

ICE: CFI: encode_const: unexpected type '[[usize; 4]; 4]' #114158

Open

Description

@matthiaskrgr

Code

rustc treereduce.out -Zsanitizer=cfi --crate-type lib -Clto

#![feature(adt_const_params)]

mod lib {
    const N_ISLANDS: usize = 4;
    const N_BRIDGES: usize = 7;
    const BRIDGES: [(usize, usize); 7] = [(0, 1), (0, 1), (0, 2), (0, 3), (0, 3), (1, 2), (2, 3)];

    pub type Matrix = [[usize; N_ISLANDS]; N_ISLANDS];

    const EMPTY_MATRIX: Matrix = [[0; N_ISLANDS]; N_ISLANDS];

    const fn to_matrix(bridges: [(usize, usize); N_BRIDGES]) -> Matrix {
        let matrix = EMPTY_MATRIX;

        matrix
    }

    const BRIDGE_MATRIX: [[usize; N_ISLANDS]; N_ISLANDS] = to_matrix(BRIDGES);

    pub struct Walk<const CURRENT: usize, const REMAINING: Matrix> {
        _p: (),
    }

    impl Walk<0, BRIDGE_MATRIX> {
        pub const fn new() -> Self {
            Self { _p: () }
        }
    }

    pub struct Trophy {
        _p: (),
    }
}

pub use lib::{Trophy, Walk};

Meta

rustc --version --verbose:

rustc 1.73.0-nightly (0be115231 2023-07-27)
binary: rustc
commit-hash: 0be11523110a8354120068cd5c69434fdec2dc87
commit-date: 2023-07-27
host: x86_64-unknown-linux-gnu
release: 1.73.0-nightly
LLVM version: 16.0.5

Error output

<output>
Backtrace

error: internal compiler error: compiler/rustc_symbol_mangling/src/typeid/typeid_itanium_cxx_abi.rs:137:21: encode_const: unexpected type `[[usize; 4]; 4]`

thread 'rustc' panicked at 'Box<dyn Any>', /rustc/0be11523110a8354120068cd5c69434fdec2dc87/compiler/rustc_errors/src/lib.rs:1645:9
stack backtrace:
   0:     0x7fe839d61fc1 - std::backtrace_rs::backtrace::libunwind::trace::h11251a01d1f7368f
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fe839d61fc1 - std::backtrace_rs::backtrace::trace_unsynchronized::h8c7e9c161dec6ceb
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fe839d61fc1 - std::sys_common::backtrace::_print_fmt::h3dbd85d6c7b23aee
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fe839d61fc1 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h0d3e596e8094daf5
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fe839dc849c - core::fmt::rt::Argument::fmt::h4fcb9ccc4ae8b178
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/core/src/fmt/rt.rs:138:9
   5:     0x7fe839dc849c - core::fmt::write::hde6b07169611e983
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/core/src/fmt/mod.rs:1094:21
   6:     0x7fe839d547ae - std::io::Write::write_fmt::hadeda9f51824c419
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/io/mod.rs:1714:15
   7:     0x7fe839d61dd5 - std::sys_common::backtrace::_print::h16e96fa77560cf6c
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7fe839d61dd5 - std::sys_common::backtrace::print::hd2b25c630669a41b
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7fe839d64e2a - std::panicking::panic_hook_with_disk_dump::{{closure}}::h820f75f8c35ebc61
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/panicking.rs:278:22
  10:     0x7fe839d64ac3 - std::panicking::panic_hook_with_disk_dump::h254fc8cd4ac07a17
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/panicking.rs:312:9
  11:     0x7fe838b83859 - <rustc_driver_impl[23d24208d96aabf1]::install_ice_hook::{closure#0} as core[446b5c3084867e6e]::ops::function::FnOnce<(&core[446b5c3084867e6e]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  12:     0x7fe839d656d0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6b21a74b9087088a
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/alloc/src/boxed.rs:2021:9
  13:     0x7fe839d656d0 - std::panicking::rust_panic_with_hook::h88d69e7f62e6ab00
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/panicking.rs:733:13
  14:     0x7fe839104621 - std[f8657784229daa3e]::panicking::begin_panic::<rustc_errors[fda530a411b01ce3]::ExplicitBug>::{closure#0}
  15:     0x7fe8391028b6 - std[f8657784229daa3e]::sys_common::backtrace::__rust_end_short_backtrace::<std[f8657784229daa3e]::panicking::begin_panic<rustc_errors[fda530a411b01ce3]::ExplicitBug>::{closure#0}, !>
  16:     0x7fe8390bf676 - std[f8657784229daa3e]::panicking::begin_panic::<rustc_errors[fda530a411b01ce3]::ExplicitBug>
  17:     0x7fe83915ebb4 - <rustc_errors[fda530a411b01ce3]::HandlerInner>::bug::<alloc[da36cf216491d02e]::string::String>
  18:     0x7fe83915ea38 - <rustc_errors[fda530a411b01ce3]::Handler>::bug::<alloc[da36cf216491d02e]::string::String>
  19:     0x7fe83918264c - rustc_middle[9ff9a8da46dab689]::util::bug::opt_span_bug_fmt::<rustc_span[ae27aa9cbbacfb85]::span_encoding::Span>::{closure#0}
  20:     0x7fe83918144a - rustc_middle[9ff9a8da46dab689]::ty::context::tls::with_opt::<rustc_middle[9ff9a8da46dab689]::util::bug::opt_span_bug_fmt<rustc_span[ae27aa9cbbacfb85]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  21:     0x7fe839181418 - rustc_middle[9ff9a8da46dab689]::ty::context::tls::with_context_opt::<rustc_middle[9ff9a8da46dab689]::ty::context::tls::with_opt<rustc_middle[9ff9a8da46dab689]::util::bug::opt_span_bug_fmt<rustc_span[ae27aa9cbbacfb85]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  22:     0x7fe83763d7c0 - rustc_middle[9ff9a8da46dab689]::util::bug::bug_fmt
  23:     0x7fe8396338e6 - rustc_symbol_mangling[db9110d89b8803cd]::typeid::typeid_itanium_cxx_abi::encode_const
  24:     0x7fe8396341f0 - rustc_symbol_mangling[db9110d89b8803cd]::typeid::typeid_itanium_cxx_abi::encode_args
  25:     0x7fe839635ef6 - rustc_symbol_mangling[db9110d89b8803cd]::typeid::typeid_itanium_cxx_abi::encode_ty
  26:     0x7fe839637ed6 - rustc_symbol_mangling[db9110d89b8803cd]::typeid::typeid_itanium_cxx_abi::typeid_for_fnabi
  27:     0x7fe839637557 - rustc_symbol_mangling[db9110d89b8803cd]::typeid::typeid_itanium_cxx_abi::typeid_for_instance
  28:     0x7fe8373afd9c - <rustc_codegen_llvm[9be676f5ea734376]::context::CodegenCx as rustc_codegen_ssa[4f9ac761dca802d4]::traits::declare::PreDefineMethods>::predefine_fn
  29:     0x7fe837c6f67c - rustc_codegen_llvm[9be676f5ea734376]::base::compile_codegen_unit::module_codegen
  30:     0x7fe837c6d2d9 - rustc_codegen_llvm[9be676f5ea734376]::base::compile_codegen_unit
  31:     0x7fe837c69ac4 - rustc_codegen_ssa[4f9ac761dca802d4]::base::codegen_crate::<rustc_codegen_llvm[9be676f5ea734376]::LlvmCodegenBackend>
  32:     0x7fe837c694bb - <rustc_codegen_llvm[9be676f5ea734376]::LlvmCodegenBackend as rustc_codegen_ssa[4f9ac761dca802d4]::traits::backend::CodegenBackend>::codegen_crate
  33:     0x7fe837dac5a2 - <rustc_session[fd244e4ad4d5b785]::session::Session>::time::<alloc[da36cf216491d02e]::boxed::Box<dyn core[446b5c3084867e6e]::any::Any>, rustc_interface[107315fc4480df53]::passes::start_codegen::{closure#0}>
  34:     0x7fe837dac11b - rustc_interface[107315fc4480df53]::passes::start_codegen
  35:     0x7fe837da6daa - <rustc_middle[9ff9a8da46dab689]::ty::context::GlobalCtxt>::enter::<<rustc_interface[107315fc4480df53]::queries::Queries>::ongoing_codegen::{closure#0}, core[446b5c3084867e6e]::result::Result<alloc[da36cf216491d02e]::boxed::Box<dyn core[446b5c3084867e6e]::any::Any>, rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>
  36:     0x7fe837da5de3 - <rustc_interface[107315fc4480df53]::interface::Compiler>::enter::<rustc_driver_impl[23d24208d96aabf1]::run_compiler::{closure#1}::{closure#2}, core[446b5c3084867e6e]::result::Result<core[446b5c3084867e6e]::option::Option<rustc_interface[107315fc4480df53]::queries::Linker>, rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>
  37:     0x7fe837d9ee38 - std[f8657784229daa3e]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[107315fc4480df53]::util::run_in_thread_pool_with_globals<rustc_interface[107315fc4480df53]::interface::run_compiler<core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>, rustc_driver_impl[23d24208d96aabf1]::run_compiler::{closure#1}>::{closure#0}, core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>
  38:     0x7fe837d9e5be - <<std[f8657784229daa3e]::thread::Builder>::spawn_unchecked_<rustc_interface[107315fc4480df53]::util::run_in_thread_pool_with_globals<rustc_interface[107315fc4480df53]::interface::run_compiler<core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>, rustc_driver_impl[23d24208d96aabf1]::run_compiler::{closure#1}>::{closure#0}, core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[446b5c3084867e6e]::result::Result<(), rustc_span[ae27aa9cbbacfb85]::ErrorGuaranteed>>::{closure#1} as core[446b5c3084867e6e]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  39:     0x7fe839d6fdc5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9a82d72b2d10ea03
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/alloc/src/boxed.rs:2007:9
  40:     0x7fe839d6fdc5 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h9f222f89042b2a16
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/alloc/src/boxed.rs:2007:9
  41:     0x7fe839d6fdc5 - std::sys::unix::thread::Thread::new::thread_start::ha2f5b7c44359c19a
                               at /rustc/0be11523110a8354120068cd5c69434fdec2dc87/library/std/src/sys/unix/thread.rs:108:17
  42:     0x7fe83589344b - <unknown>
  43:     0x7fe835916e40 - <unknown>
  44:                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: please attach the file at `/home/matthias/vcs/github/rust_bisect/rustc-ice-2023-07-28T05:14:57.200620104Z-1831474.txt` to your bug report

note: compiler flags: -Z sanitizer=cfi --crate-type lib -C lto

query stack during panic:
end of query stack
error: aborting due to previous error; 2 warnings emitted

Activity

  1. 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.
    C-bugCategory: This is a bug.
    requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.
    on Jul 28, 2023
  2. added
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Jul 28, 2023
  3. removed
    needs-triageThis issue may need triage. Remove when done. See docs forge.rust-lang.org/release/issue-triaging
    on Jul 28, 2023
  4. changed the title [-]ICE: CFI: `encode_const: unexpected type `[[usize; 4]; 4]`[/-] [+]ICE: CFI: `encode_const: unexpected type '[[usize; 4]; 4]'`[/+] on Jul 28, 2023
  5. rcvalle commented on Aug 9, 2023

    @rcvalle
    Member

    @rustbot claim

  6. Jules-Bertholet commented on Apr 8, 2024

    @Jules-Bertholet
    Contributor

    @rustbot label A-sanitizers

  7. added
    A-sanitizersArea: Sanitizers for correctness and code quality
    on Apr 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

A-control-flow-integrityArea: Control Flow Integrity (CFI) security mitigationA-sanitizersArea: Sanitizers for correctness and code qualityC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️PG-exploit-mitigationsProject group: Exploit mitigationsT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.requires-nightlyThis issue requires a nightly compiler in some way. When possible, use a F-* label instead.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions