Skip to content

Panic while trying to get item body due to NormalizationFailure #38

Closed
@celinval

Description

@celinval

The rustc test tests/codegen/enum/enum-debug-niche-2.rs, using the test-drive tool from #25, crashes when trying to retrieve an item body with the following message:

called `Result::unwrap()` on an `Err` value: NormalizationFailure(...) })])))
Detailed message and backtrace
command: RUSTC_ICE="0" "/tmp/smir/bin/test-drive" "tests/codegen/enum/enum-debug-niche-2.rs" "-Zthreads=1" "-Zsimulate-remapped-rust-src-base=/rustc/FAKE_PREFIX" "-Ztranslate-remapped-path-to-local-path=no" "-Z" "ignore-directory-in-diagnostics-source-blocks=/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu" "--target=x86_64-unknown-linux-gnu" "--emit" "llvm-ir" "-C" "prefer-dynamic" "--out-dir" "/tmp/rustc/build/x86_64-unknown-linux-gnu/stage1/tests/codegen/enum/enum-debug-niche-2" "-A" "internal_features" "--smir-check" "-L" "/tmp/rustc/build/x86_64-unknown-linux-gnu/stage1/tests/codegen/enum/enum-debug-niche-2/auxiliary" "-g" "-C" "no-prepopulate-passes"

thread 'rustc' panicked at compiler/rustc_smir/src/rustc_smir/alloc.rs:47:83:
called `Result::unwrap()` on an `Err` value: NormalizationFailure(FnDef(DefId(2:2274 ~ core[1e87]::clone::Clone::clone), [Alias(Projection, AliasTy { args: [F/#0], def_id: DefId(0:9 ~ enum_debug_niche_2[ce73]::TypeFamily::Placeholder) })]), Type(FnDef(DefId(2:2274 ~ core[1e87]::clone::Clone::clone), [Alias(Projection, AliasTy { args: [F/#0], def_id: DefId(0:9 ~ enum_debug_niche_2[ce73]::TypeFamily::Placeholder) })])))
stack backtrace:
   0: rust_begin_unwind
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/core/src/result.rs:1652:5
   3: rustc_smir::rustc_smir::alloc::new_allocation
   4: <rustc_middle::mir::consts::Const as rustc_smir::rustc_smir::Stable>::stable
   5: <rustc_middle::mir::syntax::Operand as rustc_smir::rustc_smir::Stable>::stable
   6: <rustc_middle::mir::terminator::Terminator as rustc_smir::rustc_smir::Stable>::stable
   7: <core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_middle::mir::BasicBlockData>, <rustc_smir::rustc_smir::Tables as rustc_smir::stable_mir::Context>::mir_body::{closure#0}> as core::iter::traits::iterator::Iterator>::fold::<(), core::iter::traits::iterator::Iterator::for_each::call<rustc_smir::stable_mir::mir::body::BasicBlock, <alloc::vec::Vec<rustc_smir::stable_mir::mir::body::BasicBlock>>::extend_trusted<core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_middle::mir::BasicBlockData>, <rustc_smir::rustc_smir::Tables as rustc_smir::stable_mir::Context>::mir_body::{closure#0}>>::{closure#0}>::{closure#0}>
   8: <alloc::vec::Vec<rustc_smir::stable_mir::mir::body::BasicBlock> as alloc::vec::spec_from_iter::SpecFromIter<rustc_smir::stable_mir::mir::body::BasicBlock, core::iter::adapters::map::Map<core::slice::iter::Iter<rustc_middle::mir::BasicBlockData>, <rustc_smir::rustc_smir::Tables as rustc_smir::stable_mir::Context>::mir_body::{closure#0}>>>::from_iter
   9: <rustc_smir::rustc_smir::Tables as rustc_smir::stable_mir::Context>::mir_body
  10: <scoped_tls::ScopedKey<core::cell::Cell<*mut ()>>>::with::<rustc_smir::stable_mir::with<rustc_smir::stable_mir::mir::body::Body, <rustc_smir::stable_mir::CrateItem>::body::{closure#0}>::{closure#0}, rustc_smir::stable_mir::mir::body::Body>
  11: <rustc_smir::stable_mir::CrateItem>::body
  12: test_drive::sanity_checks::test_all_fns
             at /smir/tools/test-drive/src/sanity_checks.rs:56:20
  13: test_drive::test_stable_mir::{{closure}}
             at /smir/tools/test-drive/src/main.rs:62:46
  14: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/core/src/panic/unwind_safe.rs:271:9
  15: std::panicking::try::do_call
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/panicking.rs:504:40
  16: __rust_try
  17: std::panicking::try
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/panicking.rs:468:19
  18: std::panic::catch_unwind
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/panic.rs:142:14
  19: test_drive::run_test
             at /smir/tools/test-drive/src/main.rs:100:24
  20: test_drive::test_stable_mir
             at /smir/tools/test-drive/src/main.rs:77:33
  21: <rustc_smir::rustc_internal::StableMir<B,C> as rustc_driver_impl::Callbacks>::after_analysis::{{closure}}::{{closure}}
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/rustc_internal/mod.rs:255:36
  22: rustc_smir::stable_mir::run::g::{{closure}}
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/stable_mir/mod.rs:187:13
  23: scoped_tls::ScopedKey<T>::set
             at /cargo/registry/src/index.crates.io-6f17d22bba15001f/scoped-tls-1.0.1/src/lib.rs:137:9
  24: rustc_smir::stable_mir::run::g
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/stable_mir/mod.rs:186:9
  25: rustc_smir::stable_mir::run
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/stable_mir/mod.rs:190:5
  26: rustc_smir::rustc_internal::run
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/rustc_internal/mod.rs:181:5
  27: <rustc_smir::rustc_internal::StableMir<B,C> as rustc_driver_impl::Callbacks>::after_analysis::{{closure}}
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/rustc_internal/mod.rs:254:13
  28: rustc_middle::ty::context::GlobalCtxt::enter::{{closure}}
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_middle/src/ty/context.rs:598:37
  29: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_middle/src/ty/context/tls.rs:82:9
  30: std::thread::local::LocalKey<T>::try_with
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/thread/local.rs:270:16
  31: std::thread::local::LocalKey<T>::with
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/library/std/src/thread/local.rs:246:9
  32: rustc_middle::ty::context::tls::enter_context
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_middle/src/ty/context/tls.rs:79:9
  33: rustc_middle::ty::context::GlobalCtxt::enter
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_middle/src/ty/context.rs:598:9
  34: rustc_interface::queries::QueryResult<&rustc_middle::ty::context::GlobalCtxt>::enter
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_interface/src/queries.rs:69:9
  35: <rustc_smir::rustc_internal::StableMir<B,C> as rustc_driver_impl::Callbacks>::after_analysis
             at /rustc/37390d65636dd67e263753a3c04fbc60dcc4348e/compiler/rustc_smir/src/rustc_internal/mod.rs:253:9
  36: rustc_span::set_source_map::<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_interface::interface::run_compiler<core::result::Result<(), rustc_span::ErrorGuaranteed>, rustc_driver_impl::run_compiler::{closure#1}>::{closure#0}::{closure#0}>

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions