rust-lang / rust-lang/rust

ICE: `Unsigned value 0x100 does not fit in 8 bits`

Open
#123,690 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-layout A-MIR C-bug E-needs-mcve I-ICE S-bug-has-test T-compiler
Dominant language
Rust
Stars
119k
Forks
16.2k
PR merge metrics
PR metrics pending

Description

auto-reduced (treereduce-rust): (from miri: tests/pass/enums.rs )

fn more_discriminant_overflow() {
    pub enum Infallible {}

    pub enum E1 {
        V2 {},
        V3,
        V4,
    }

    #[repr(u8)]

    pub enum E2<X> {
        V1 { f: bool },

        /*_00*/ _01(X),
        _02(X),
        _03(X),
        _04(X),
        _05(X),
        _06(X),
        _07(X),
        _08(X),
        _09(X),
        _0A(X),
        _0B(X),
        _0C(X),
        _0D(X),
        _0E(X),
        _0F(X),
        _10(X),
        _11(X),
        _12(X),
        _13(X),
        _14(X),
        _15(X),
        _16(X),
        _17(X),
        _18(X),
        _19(X),
        _1A(X),
        _1B(X),
        _1C(X),
        _1D(X),
        _1E(X),
        _1F(X),
        _20(X),
        _21(X),
        _22(X),
        _23(X),
        _24(X),
        _25(X),
        _26(X),
        _27(X),
        _28(X),
        _29(X),
        _2A(X),
        _2B(X),
        _2C(X),
        _2D(X),
        _2E(X),
        _2F(X),
        _30(X),
        _31(X),
        _32(X),
        _33(X),
        _34(X),
        _35(X),
        _36(X),
        _37(X),
        _38(X),
        _39(X),
        _3A(X),
        _3B(X),
        _3C(X),
        _3D(X),
        _3E(X),
        _3F(X),
        _40(X),
        _41(X),
        _42(X),
        _43(X),
        _44(X),
        _45(X),
        _46(X),
        _47(X),
        _48(X),
        _49(X),
        _4A(X),
        _4B(X),
        _4C(X),
        _4D(X),
        _4E(X),
        _4F(X),
        _50(X),
        _51(X),
        _52(X),
        _53(X),
        _54(X),
        _55(X),
        _56(X),
        _57(X),
        _58(X),
        _59(X),
        _5A(X),
        _5B(X),
        _5C(X),
        _5D(X),
        _5E(X),
        _5F(X),
        _60(X),
        _61(X),
        _62(X),
        _63(X),
        _64(X),
        _65(X),
        _66(X),
        _67(X),
        _68(X),
        _69(X),
        _6A(X),
        _6B(X),
        _6C(X),
        _6D(X),
        _6E(X),
        _6F(X),
        _70(X),
        _71(X),
        _72(X),
        _73(X),
        _74(E1),
        _75(X),
        _76(X),
        _77(X),
        _78(X),
        _79(X),
        _7A(X),
        _7B(X),
        _7C(X),
        _7D(X),
        _7E(X),
        _7F(X),
        _80(X),
        _81(X),
        _82(X),
        _83(X),
        _84(X),
        _85(X),
        _86(X),
        _87(X),
        _88(X),
        _89(X),
        _8A(X),
        _8B(X),
        _8C(X),
        _8D(X),
        _8E(X),
        _8F(X),
        _90(X),
        _91(X),
        _92(X),
        _93(X),
        _94(X),
        _95(X),
        _96(X),
        _97(X),
        _98(X),
        _99(X),
        _9A(X),
        _9B(X),
        _9C(X),
        _9D(X),
        _9E(X),
        _9F(X),
        _A0(X),
        _A1(X),
        _A2(X),
        _A3(X),
        _A4(X),
        _A5(X),
        _A6(X),
        _A7(X),
        _A8(X),
        _A9(X),
        _AA(X),
        _AB(X),
        _AC(X),
        _AD(X),
        _AE(X),
        _AF(X),
        _B0(X),
        _B1(X),
        _B2(X),
        _B3(X),
        _B4(X),
        _B5(X),
        _B6(X),
        _B7(X),
        _B8(X),
        _B9(X),
        _BA(X),
        _BB(X),
        _BC(X),
        _BD(X),
        _BE(X),
        _BF(X),
        _C0(X),
        _C1(X),
        _C2(X),
        _C3(X),
        _C4(X),
        _C5(X),
        _C6(X),
        _D8(X),
        _C8(X),
        _C9(X),
        _CA(X),
        _CB(X),
        _CC(X),
        _CD(X),
        _CE(X),
        _CF(X),
        _D0(X),
        _D1(X),
        _D2(X),
        _D3(X),
        _D4(X),
        _D5(X),
        _D6(X),
        _D7(X),
        _D8(X),
        _D9(X),
        _DA(X),
        _DB(X),
        _DC(X),
        _DD(X),
        _DE(X),
        _DF(X),
        _E0(X),
        _E1(X),
        _E2(X),
        _E3(X),
        _E4(X),
        _E5(X),
        _E6(X),
        _E7(X),
        _E8(X),
        _E9(X),
        _EA(X),
        _EB(X),
        _EC(X),
        _ED(X),
        _EE(X),
        _EF(i32, i32),
        _F0(X),
        _F1(X),
        _F2(X),
        _F3(X),
        _F4(X),
        _F5(X),
        _F6(X),
        _F7(X),
        _F8(X),
        _F9(X),
        _FA(X),
        _FB(X),
        _FC(X),
        _FD(X),
        _FE(X),
        _FF(X),

        V3,
        V4,
    }

    if let E2::V1 { .. } = E2::V3::<Infallible> {}
}


original code

original:


fn more_discriminant_overflow() {
    pub enum Infallible {}

    
    
    
    
    pub enum E1 {
        V2 {  },
        V3,
        V4,
    }

    
    
    
    #[repr(u8)]
     
    pub enum E2<X> {
        V1 { f: bool },

        /*_00*/ _01(X), _02(X), _03(X), _04(X), _05(X), _06(X), _07(X),
        _08(X), _09(X), _0A(X), _0B(X), _0C(X), _0D(X), _0E(X), _0F(X),
        _10(X), _11(X), _12(X), _13(X), _14(X), _15(X), _16(X), _17(X),
        _18(X), _19(X), _1A(X), _1B(X), _1C(X), _1D(X), _1E(X), _1F(X),
        _20(X), _21(X), _22(X), _23(X), _24(X), _25(X), _26(X), _27(X),
        _28(X), _29(X), _2A(X), _2B(X), _2C(X), _2D(X), _2E(X), _2F(X),
        _30(X), _31(X), _32(X), _33(X), _34(X), _35(X), _36(X), _37(X),
        _38(X), _39(X), _3A(X), _3B(X), _3C(X), _3D(X), _3E(X), _3F(X),
        _40(X), _41(X), _42(X), _43(X), _44(X), _45(X), _46(X), _47(X),
        _48(X), _49(X), _4A(X), _4B(X), _4C(X), _4D(X), _4E(X), _4F(X),
        _50(X), _51(X), _52(X), _53(X), _54(X), _55(X), _56(X), _57(X),
        _58(X), _59(X), _5A(X), _5B(X), _5C(X), _5D(X), _5E(X), _5F(X),
        _60(X), _61(X), _62(X), _63(X), _64(X), _65(X), _66(X), _67(X),
        _68(X), _69(X), _6A(X), _6B(X), _6C(X), _6D(X), _6E(X), _6F(X),
        _70(X), _71(X), _72(X), _73(X), _74(E1), _75(X), _76(X), _77(X),
        _78(X), _79(X), _7A(X), _7B(X), _7C(X), _7D(X), _7E(X), _7F(X),
        _80(X), _81(X), _82(X), _83(X), _84(X), _85(X), _86(X), _87(X),
        _88(X), _89(X), _8A(X), _8B(X), _8C(X), _8D(X), _8E(X), _8F(X),
        _90(X), _91(X), _92(X), _93(X), _94(X), _95(X), _96(X), _97(X),
        _98(X), _99(X), _9A(X), _9B(X), _9C(X), _9D(X), _9E(X), _9F(X),
        _A0(X), _A1(X), _A2(X), _A3(X), _A4(X), _A5(X), _A6(X), _A7(X),
        _A8(X), _A9(X), _AA(X), _AB(X), _AC(X), _AD(X), _AE(X), _AF(X),
        _B0(X), _B1(X), _B2(X), _B3(X), _B4(X), _B5(X), _B6(X), _B7(X),
        _B8(X), _B9(X), _BA(X), _BB(X), _BC(X), _BD(X), _BE(X), _BF(X),
        _C0(X), _C1(X), _C2(X), _C3(X), _C4(X), _C5(X), _C6(X), _D8(X),
        _C8(X), _C9(X), _CA(X), _CB(X), _CC(X), _CD(X), _CE(X), _CF(X),
        _D0(X), _D1(X), _D2(X), _D3(X), _D4(X), _D5(X), _D6(X), _D7(X),
        _D8(X), _D9(X), _DA(X), _DB(X), _DC(X), _DD(X), _DE(X), _DF(X),
        _E0(X), _E1(X), _E2(X), _E3(X), _E4(X), _E5(X), _E6(X), _E7(X),
        _E8(X), _E9(X), _EA(X), _EB(X), _EC(X), _ED(X), _EE(X), _EF(i32, i32),
        _F0(X), _F1(X), _F2(X), _F3(X), _F4(X), _F5(X), _F6(X), _F7(X),
        _F8(X), _F9(X), _FA(X), _FB(X), _FC(X), _FD(X), _FE(X), _FF(X),

        V3,
        V4,
    }

    
    

    if let E2::V1 { .. } = E2::V3::<Infallible> {
        
    }
    
}


Version information

rustc 1.79.0-nightly (033becf83 2024-04-09)
binary: rustc
commit-hash: 033becf83c62814357f4810db149471db46ab816
commit-date: 2024-04-09
host: x86_64-unknown-linux-gnu
release: 1.79.0-nightly
LLVM version: 18.1.3

Command:
/home/matthias/.rustup/toolchains/master/bin/rustc

Program output

error[E0428]: the name `_D8` is defined multiple times
   --> /tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs:230:9
    |
213 |         _D8(X),
    |         ------ previous definition of the type `_D8` here
...
230 |         _D8(X),
    |         ^^^^^^ `_D8` redefined here
    |
    = note: `_D8` must be defined only once in the type namespace of this enum

error[E0601]: `main` function not found in crate `mvce`
   --> /tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs:276:2
    |
276 | }
    |  ^ consider adding a `main` function to `/tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs`

error[E0370]: enum discriminant overflowed
   --> /tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs:271:9
    |
271 |         V3,
    |         ^^ overflowed on value after 255
    |
    = note: explicitly set `V3 = 0` if that is desired outcome

error[E0081]: discriminant value `0` assigned more than once
   --> /tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs:12:5
    |
12  |     pub enum E2<X> {
    |     ^^^^^^^^^^^^^^
13  |         V1 { f: bool },
    |         --
    |         |
    |         `0` assigned here
    |         discriminant for `V3` incremented from this startpoint (`V1` + 256 variants later => `V3` = 0)
...
271 |         V3,
    |         -- `0` assigned here

error[E0081]: discriminant value `1` assigned more than once
   --> /tmp/icemaker_global_tempdir.7SPizWTj47xD/rustc_testrunner_tmpdir_reporting.iDiOmTF2oX4J/mvce.rs:12:5
    |
12  |     pub enum E2<X> {
    |     ^^^^^^^^^^^^^^
13  |         V1 { f: bool },
    |         --
    |         |
    |         discriminant for `_01` incremented from this startpoint (`V1` + 1 variant later => `_01` = 1)
    |         discriminant for `V4` incremented from this startpoint (`V1` + 257 variants later => `V4` = 1)
14  |
15  |         /*_00*/ _01(X),
    |                 --- `1` assigned here
...
272 |         V4,
    |         -- `1` assigned here

error: internal compiler error: /rustc/033becf83c62814357f4810db149471db46ab816/compiler/rustc_middle/src/mir/interpret/value.rs:134:32: Unsigned value 0x100 does not fit in 8 bits

thread 'rustc' panicked at /rustc/033becf83c62814357f4810db149471db46ab816/compiler/rustc_middle/src/mir/interpret/value.rs:134:32:
Box<dyn Any>
stack backtrace:
   0:     0x7b17329d9885 - std::backtrace_rs::backtrace::libunwind::trace::he2880c2699337794
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x7b17329d9885 - std::backtrace_rs::backtrace::trace_unsynchronized::h460ebc9cd0eb6331
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7b17329d9885 - std::sys_common::backtrace::_print_fmt::h47b746c0604572c3
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x7b17329d9885 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::ha907b996746f56a0
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7b1732a28abb - core::fmt::rt::Argument::fmt::hfe22b646b1687193
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/core/src/fmt/rt.rs:142:9
   5:     0x7b1732a28abb - core::fmt::write::h6b4a267d08f3d00d
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/core/src/fmt/mod.rs:1153:17
   6:     0x7b17329ce3ff - std::io::Write::write_fmt::h0abdd14d11c1702a
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/io/mod.rs:1843:15
   7:     0x7b17329d965e - std::sys_common::backtrace::_print::hbeb8c9c7793a4a1e
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x7b17329d965e - std::sys_common::backtrace::print::h6ca4866d684d9b00
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x7b17329dc159 - std::panicking::default_hook::{{closure}}::h33647e3098e0b657
  10:     0x7b17329dbe75 - std::panicking::default_hook::ha6320bcd5d0e9cc8
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/panicking.rs:291:9
  11:     0x7b172f26649f - std[5013708940097fa8]::panicking::update_hook::<alloc[d2bd3d5c53f6cb06]::boxed::Box<rustc_driver_impl[83e8eb7d3795c9f9]::install_ice_hook::{closure#0}>>::{closure#0}
  12:     0x7b17329dc85c - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hf428354f3713bf5b
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/alloc/src/boxed.rs:2032:9
  13:     0x7b17329dc85c - std::panicking::rust_panic_with_hook::h0014da0b7030d171
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/panicking.rs:792:13
  14:     0x7b172f296504 - std[5013708940097fa8]::panicking::begin_panic::<rustc_errors[6d6b100434177d40]::ExplicitBug>::{closure#0}
  15:     0x7b172f292fa6 - std[5013708940097fa8]::sys_common::backtrace::__rust_end_short_backtrace::<std[5013708940097fa8]::panicking::begin_panic<rustc_errors[6d6b100434177d40]::ExplicitBug>::{closure#0}, !>
  16:     0x7b172f28e5c6 - std[5013708940097fa8]::panicking::begin_panic::<rustc_errors[6d6b100434177d40]::ExplicitBug>
  17:     0x7b172f2a0241 - <rustc_errors[6d6b100434177d40]::diagnostic::BugAbort as rustc_errors[6d6b100434177d40]::diagnostic::EmissionGuarantee>::emit_producing_guarantee
  18:     0x7b172f74212c - rustc_middle[867c8a7f7f3067fc]::util::bug::opt_span_bug_fmt::<rustc_span[ef049dfdad08a076]::span_encoding::Span>::{closure#0}
  19:     0x7b172f72956a - rustc_middle[867c8a7f7f3067fc]::ty::context::tls::with_opt::<rustc_middle[867c8a7f7f3067fc]::util::bug::opt_span_bug_fmt<rustc_span[ef049dfdad08a076]::span_encoding::Span>::{closure#0}, !>::{closure#0}
  20:     0x7b172f72940b - rustc_middle[867c8a7f7f3067fc]::ty::context::tls::with_context_opt::<rustc_middle[867c8a7f7f3067fc]::ty::context::tls::with_opt<rustc_middle[867c8a7f7f3067fc]::util::bug::opt_span_bug_fmt<rustc_span[ef049dfdad08a076]::span_encoding::Span>::{closure#0}, !>::{closure#0}, !>
  21:     0x7b172d353250 - rustc_middle[867c8a7f7f3067fc]::util::bug::bug_fmt
  22:     0x7b1731ca62e5 - <rustc_const_eval[7cbea1700b739c82]::interpret::eval_context::InterpCx<rustc_const_eval[7cbea1700b739c82]::const_eval::dummy_machine::DummyMachine>>::discriminant_for_variant.cold
  23:     0x7b17313bf09b - <rustc_mir_transform[3ac67f783d646433]::known_panics_lint::ConstPropagator>::use_ecx::<<rustc_mir_transform[3ac67f783d646433]::known_panics_lint::ConstPropagator>::eval_rvalue::{closure#0}::{closure#11}, rustc_const_eval[7cbea1700b739c82]::interpret::operand::ImmTy>
  24:     0x7b172da8e733 - <rustc_mir_transform[3ac67f783d646433]::known_panics_lint::ConstPropagator as rustc_middle[867c8a7f7f3067fc]::mir::visit::Visitor>::visit_assign
  25:     0x7b1730ffb2bb - <rustc_mir_transform[3ac67f783d646433]::known_panics_lint::ConstPropagator as rustc_middle[867c8a7f7f3067fc]::mir::visit::Visitor>::visit_body
  26:     0x7b172de9aad3 - <rustc_mir_transform[3ac67f783d646433]::known_panics_lint::KnownPanicsLint as rustc_mir_transform[3ac67f783d646433]::pass_manager::MirLint>::run_lint
  27:     0x7b173060188d - rustc_mir_transform[3ac67f783d646433]::pass_manager::run_passes_inner
  28:     0x7b1730c2ed02 - rustc_mir_transform[3ac67f783d646433]::mir_drops_elaborated_and_const_checked
  29:     0x7b1730c2e63d - rustc_query_impl[a13915abec574cc4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[a13915abec574cc4]::query_impl::mir_drops_elaborated_and_const_checked::dynamic_query::{closure#2}::{closure#0}, rustc_middle[867c8a7f7f3067fc]::query::erase::Erased<[u8; 8usize]>>
  30:     0x7b17307d0871 - rustc_query_system[37cb0ad7182a86b8]::query::plumbing::try_execute_query::<rustc_query_impl[a13915abec574cc4]::DynamicConfig<rustc_query_system[37cb0ad7182a86b8]::query::caches::VecCache<rustc_span[ef049dfdad08a076]::def_id::LocalDefId, rustc_middle[867c8a7f7f3067fc]::query::erase::Erased<[u8; 8usize]>>, false, false, false>, rustc_query_impl[a13915abec574cc4]::plumbing::QueryCtxt, false>
  31:     0x7b17307d0162 - rustc_query_impl[a13915abec574cc4]::query_impl::mir_drops_elaborated_and_const_checked::get_query_non_incr::__rust_end_short_backtrace
  32:     0x7b1730eef693 - rustc_interface[791da96d69a7cf4c]::passes::analysis
  33:     0x7b1730eee495 - rustc_query_impl[a13915abec574cc4]::plumbing::__rust_begin_short_backtrace::<rustc_query_impl[a13915abec574cc4]::query_impl::analysis::dynamic_query::{closure#2}::{closure#0}, rustc_middle[867c8a7f7f3067fc]::query::erase::Erased<[u8; 1usize]>>
  34:     0x7b17313fa6a5 - rustc_query_system[37cb0ad7182a86b8]::query::plumbing::try_execute_query::<rustc_query_impl[a13915abec574cc4]::DynamicConfig<rustc_query_system[37cb0ad7182a86b8]::query::caches::SingleCache<rustc_middle[867c8a7f7f3067fc]::query::erase::Erased<[u8; 1usize]>>, false, false, false>, rustc_query_impl[a13915abec574cc4]::plumbing::QueryCtxt, false>
  35:     0x7b17313fa409 - rustc_query_impl[a13915abec574cc4]::query_impl::analysis::get_query_non_incr::__rust_end_short_backtrace
  36:     0x7b1731280cd4 - rustc_interface[791da96d69a7cf4c]::interface::run_compiler::<core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>, rustc_driver_impl[83e8eb7d3795c9f9]::run_compiler::{closure#0}>::{closure#0}
  37:     0x7b173134deff - std[5013708940097fa8]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[791da96d69a7cf4c]::util::run_in_thread_with_globals<rustc_interface[791da96d69a7cf4c]::util::run_in_thread_pool_with_globals<rustc_interface[791da96d69a7cf4c]::interface::run_compiler<core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>, rustc_driver_impl[83e8eb7d3795c9f9]::run_compiler::{closure#0}>::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>
  38:     0x7b173134dcee - <<std[5013708940097fa8]::thread::Builder>::spawn_unchecked_<rustc_interface[791da96d69a7cf4c]::util::run_in_thread_with_globals<rustc_interface[791da96d69a7cf4c]::util::run_in_thread_pool_with_globals<rustc_interface[791da96d69a7cf4c]::interface::run_compiler<core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>, rustc_driver_impl[83e8eb7d3795c9f9]::run_compiler::{closure#0}>::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>::{closure#0}::{closure#0}, core[b815557cbe89e06]::result::Result<(), rustc_span[ef049dfdad08a076]::ErrorGuaranteed>>::{closure#1} as core[b815557cbe89e06]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  39:     0x7b17329e628b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h53814b1241345312
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/alloc/src/boxed.rs:2018:9
  40:     0x7b17329e628b - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h68f33d2823fce7a0
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/alloc/src/boxed.rs:2018:9
  41:     0x7b17329e628b - std::sys::pal::unix::thread::Thread::new::thread_start::h5c5183b404e56855
                               at /rustc/033becf83c62814357f4810db149471db46ab816/library/std/src/sys/pal/unix/thread.rs:108:17
  42:     0x7b173278455a - <unknown>
  43:     0x7b1732801a3c - <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: rustc 1.79.0-nightly (033becf83 2024-04-09) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [mir_drops_elaborated_and_const_checked] elaborating drops for `more_discriminant_overflow`
#1 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to 6 previous errors

Some errors have detailed explanations: E0081, E0370, E0428, E0601.
For more information about an error, try `rustc --explain E0081`.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the reduced 2.rs reproducer and the reported panic at compiler/rustc_middle/src/mir/interpret/value.rs:134; the issue also identifies miri's tests/pass/enums.rs as the source. Run the reproducer and inspect how the enum discriminant-overflow diagnostics reach this value handling. Done means the input no longer produces an internal compiler error while preserving the relevant diagnostics.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.