Skip to content

ICE during cross-compilation and const eval #49033

Closed

Description

Looks like today's nightly unfortunately contains a regression from #46882 (confirmed locally) which causes rustc to ICE specifically when cross-compiling

#![crate_type = "rlib"]
pub fn foo() {
    std::env::consts::ARCH;
}
$ RUST_BACKTRACE=1 rustc src/lib.rs --target i686-unknown-linux-gnu
warning: path statement with no effect
 --> src/lib.rs:3:5
  |
3 |     std::env::consts::ARCH;
  |     ^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(path_statements)] on by default

thread 'rustc' panicked at 'slice index starts at 4294967295 but ends at 8288060', libcore/slice/mod.rs:791:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::_print
             at libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at libstd/sys_common/backtrace.rs:59
             at libstd/panicking.rs:207
   3: std::panicking::default_hook
             at libstd/panicking.rs:223
   4: core::ops::function::Fn::call
   5: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:403
   6: std::panicking::begin_panic_fmt
             at libstd/panicking.rs:349
   7: rust_begin_unwind
             at libstd/panicking.rs:325
   8: core::panicking::panic_fmt
             at libcore/panicking.rs:72
   9: core::slice::slice_index_order_fail
             at libcore/slice/mod.rs:791
  10: <serialize::opaque::Decoder<'a> as serialize::serialize::Decoder>::read_usize
  11: <rustc_metadata::decoder::DecodeContext<'a, 'tcx> as serialize::serialize::SpecializedDecoder<rustc::mir::interpret::AllocId>>::specialized_decode
  12: <rustc_metadata::decoder::DecodeContext<'a, 'tcx> as serialize::serialize::SpecializedDecoder<rustc::mir::interpret::AllocId>>::specialized_decode
  13: <rustc::mir::interpret::MemoryPointer as serialize::serialize::Decodable>::decode::{{closure}}
  14: serialize::serialize::Decoder::read_enum_variant
  15: serialize::serialize::Decoder::read_enum_variant
  16: serialize::serialize::Decoder::read_enum_variant
  17: <rustc::mir::Operand<'tcx> as serialize::serialize::Decodable>::decode
  18: serialize::serialize::Decoder::read_seq
  19: <rustc::mir::Mir<'tcx> as serialize::serialize::Decodable>::decode::{{closure}}
  20: rustc_metadata::decoder::<impl rustc_metadata::cstore::CrateMetadata>::maybe_get_optimized_mir
  21: rustc_metadata::cstore_impl::provide_extern::optimized_mir
  22: rustc::dep_graph::graph::DepGraph::with_task_impl
  23: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::force
  24: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::try_get
  25: rustc::ty::maps::TyCtxtAt::optimized_mir
  26: rustc::ty::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::maybe_optimized_mir
  27: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::load_mir
  28: rustc_mir::interpret::const_eval::eval_body_and_ecx::{{closure}}
  29: rustc_mir::interpret::const_eval::eval_body_and_ecx
  30: rustc_mir::interpret::const_eval::const_eval_provider
  31: rustc::dep_graph::graph::DepGraph::with_task_impl
  32: rustc::ty::maps::<impl rustc::ty::maps::queries::const_eval<'tcx>>::force
  33: rustc::ty::maps::<impl rustc::ty::maps::queries::const_eval<'tcx>>::try_get
  34: rustc::ty::maps::TyCtxtAt::const_eval
  35: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::const_eval
  36: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::read_global_as_value
  37: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::eval_operand
  38: <rustc_mir::interpret::eval_context::EvalContext<'a, 'mir, 'tcx, M>>::eval_rvalue_into_place
  39: rustc_mir::interpret::const_eval::eval_body_and_ecx::{{closure}}
  40: rustc_mir::interpret::const_eval::eval_body_and_ecx
  41: rustc_mir::interpret::const_eval::const_eval_provider
  42: rustc::dep_graph::graph::DepGraph::with_task_impl
  43: rustc::ty::maps::<impl rustc::ty::maps::queries::const_eval<'tcx>>::force
  44: rustc::ty::maps::<impl rustc::ty::maps::queries::const_eval<'tcx>>::try_get
  45: rustc::ty::maps::TyCtxtAt::const_eval
  46: rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::const_eval
  47: rustc_mir::transform::const_prop::ConstPropagator::eval_constant
  48: <rustc_mir::transform::const_prop::ConstPropagator<'b, 'a, 'tcx> as rustc::mir::visit::Visitor<'tcx>>::visit_statement
  49: <rustc_mir::transform::const_prop::ConstProp as rustc_mir::transform::MirPass>::run_pass
  50: rustc_mir::transform::optimized_mir::{{closure}}
  51: rustc_mir::transform::optimized_mir
  52: rustc::dep_graph::graph::DepGraph::with_task_impl
  53: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::force
  54: rustc::ty::maps::<impl rustc::ty::maps::queries::optimized_mir<'tcx>>::try_get
  55: rustc::ty::maps::TyCtxtAt::optimized_mir
  56: rustc::ty::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::instance_mir
  57: rustc_mir::monomorphize::collector::collect_items_rec
  58: rustc_mir::monomorphize::collector::collect_crate_mono_items
  59: rustc_trans::base::collect_and_partition_translation_items
  60: rustc::dep_graph::graph::DepGraph::with_task_impl
  61: rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::force
  62: rustc::ty::maps::<impl rustc::ty::maps::queries::collect_and_partition_translation_items<'tcx>>::try_get
  63: rustc::ty::maps::TyCtxtAt::collect_and_partition_translation_items
  64: rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::collect_and_partition_translation_items
  65: rustc_trans::base::trans_crate
  66: <rustc_trans::LlvmTransCrate as rustc_trans_utils::trans_crate::TransCrate>::trans_crate
  67: rustc_driver::driver::phase_4_translate_to_llvm
  68: rustc_driver::driver::compile_input::{{closure}}
  69: rustc::ty::context::TyCtxt::create_and_enter
  70: rustc_driver::driver::compile_input
  71: rustc_driver::run_compiler

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.26.0-nightly (c90f68224 2018-03-08) running on x86_64-unknown-linux-gnu

cc @oli-obk

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

Metadata

Assignees

Labels

I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.regression-from-stable-to-nightlyPerformance or correctness regression from stable to nightly.Performance or correctness regression from stable to nightly.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions