Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

assertion failure with -Zmir-opt-level=2 on ./ui/array-slice-vec/arr_cycle.rs #67641

Closed
matthiaskrgr opened this issue Dec 26, 2019 · 2 comments · Fixed by #68170
Closed

assertion failure with -Zmir-opt-level=2 on ./ui/array-slice-vec/arr_cycle.rs #67641

matthiaskrgr opened this issue Dec 26, 2019 · 2 comments · Fixed by #68170
Labels
A-mir Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@matthiaskrgr
Copy link
Member

rustc ./ui/array-slice-vec/arr_cycle.rs -Zmir-opt-level=2

file:

// run-pass

use std::cell::Cell;

#[derive(Debug)]
struct B<'a> {
    a: [Cell<Option<&'a B<'a>>>; 2]
}

impl<'a> B<'a> {
    fn new() -> B<'a> {
        B { a: [Cell::new(None), Cell::new(None)] }
    }
}

fn f() {
    let (b1, b2, b3);
    b1 = B::new();
    b2 = B::new();
    b3 = B::new();
    b1.a[0].set(Some(&b2));
    b1.a[1].set(Some(&b3));
    b2.a[0].set(Some(&b2));
    b2.a[1].set(Some(&b3));
    b3.a[0].set(Some(&b1));
    b3.a[1].set(Some(&b2));
}

fn main() {
    f();
}
thread 'rustc' panicked at 'assertion failed: `(left != right)`
  left: `Const`,
 right: `Const`: UnsafeCells are not allowed behind references in constants. This should have been prevented statically by const qualification. If this were allowed one would be able to change a constant at one use site and other use sites could observe that mutation.', src/librustc_mir/interpret/intern.rs:167:17
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1: backtrace::backtrace::trace_unsynchronized
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:77
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1057
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1426
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:195
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:215
  10: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at /home/matthias/vcs/github/rust_debug_assertions/src/liballoc/boxed.rs:1029
  11: rustc_driver::report_ice
             at src/librustc_driver/lib.rs:1160
  12: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:476
  13: rust_begin_unwind
             at src/libstd/panicking.rs:376
  14: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:327
  15: <rustc_mir::interpret::intern::InternVisitor<M> as rustc_mir::interpret::visitor::ValueVisitor<M>>::visit_aggregate
             at src/librustc_mir/interpret/intern.rs:167
  16: rustc_mir::interpret::visitor::ValueVisitor::walk_value
             at src/librustc_mir/interpret/visitor.rs:291
  17: rustc_mir::interpret::visitor::ValueVisitor::visit_value
             at src/librustc_mir/interpret/visitor.rs:119
  18: rustc_mir::interpret::visitor::ValueVisitor::visit_field
             at src/librustc_mir/interpret/visitor.rs:151
  19: rustc_mir::interpret::visitor::ValueVisitor::walk_aggregate
             at src/librustc_mir/interpret/visitor.rs:200
  20: <rustc_mir::interpret::intern::InternVisitor<M> as rustc_mir::interpret::visitor::ValueVisitor<M>>::visit_aggregate
             at src/librustc_mir/interpret/intern.rs:180
  21: rustc_mir::interpret::visitor::ValueVisitor::walk_value
             at src/librustc_mir/interpret/visitor.rs:291
  22: rustc_mir::interpret::visitor::ValueVisitor::visit_value
             at src/librustc_mir/interpret/visitor.rs:119
  23: rustc_mir::interpret::visitor::ValueVisitor::visit_field
             at src/librustc_mir/interpret/visitor.rs:151
  24: rustc_mir::interpret::visitor::ValueVisitor::walk_aggregate
             at src/librustc_mir/interpret/visitor.rs:200
  25: <rustc_mir::interpret::intern::InternVisitor<M> as rustc_mir::interpret::visitor::ValueVisitor<M>>::visit_aggregate
             at src/librustc_mir/interpret/intern.rs:180
  26: rustc_mir::interpret::visitor::ValueVisitor::walk_value
             at src/librustc_mir/interpret/visitor.rs:307
  27: rustc_mir::interpret::visitor::ValueVisitor::visit_value
             at src/librustc_mir/interpret/visitor.rs:119
  28: rustc_mir::interpret::visitor::ValueVisitor::visit_field
             at src/librustc_mir/interpret/visitor.rs:151
  29: rustc_mir::interpret::visitor::ValueVisitor::walk_aggregate
             at src/librustc_mir/interpret/visitor.rs:200
  30: <rustc_mir::interpret::intern::InternVisitor<M> as rustc_mir::interpret::visitor::ValueVisitor<M>>::visit_aggregate
             at src/librustc_mir/interpret/intern.rs:180
  31: rustc_mir::interpret::visitor::ValueVisitor::walk_value
             at src/librustc_mir/interpret/visitor.rs:291
  32: rustc_mir::interpret::visitor::ValueVisitor::visit_value
             at src/librustc_mir/interpret/visitor.rs:119
  33: rustc_mir::interpret::intern::intern_const_alloc_recursive
             at src/librustc_mir/interpret/intern.rs:289
  34: rustc_mir::transform::const_prop::ConstPropagator::should_const_prop
             at src/librustc_mir/transform/const_prop.rs:662
  35: <rustc_mir::transform::const_prop::ConstPropagator as rustc::mir::visit::MutVisitor>::visit_statement
             at src/librustc_mir/transform/const_prop.rs:767
  36: rustc::mir::visit::MutVisitor::super_basic_block_data
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/mir/visit.rs:322
  37: rustc::mir::visit::MutVisitor::visit_basic_block_data
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/mir/visit.rs:93
  38: rustc::mir::visit::MutVisitor::super_body
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/mir/visit.rs:275
  39: rustc::mir::visit::MutVisitor::visit_body
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/mir/visit.rs:87
  40: <rustc_mir::transform::const_prop::ConstProp as rustc_mir::transform::MirPass>::run_pass
             at src/librustc_mir/transform/const_prop.rs:97
  41: rustc_mir::transform::run_passes::{{closure}}
             at src/librustc_mir/transform/mod.rs:171
  42: rustc_mir::transform::run_passes
             at src/librustc_mir/transform/mod.rs:178
  43: rustc_mir::transform::run_optimization_passes
             at src/librustc_mir/transform/mod.rs:273
  44: rustc_mir::transform::optimized_mir
             at src/librustc_mir/transform/mod.rs:343
  45: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::optimized_mir>::compute
             at src/librustc/ty/query/plumbing.rs:963
  46: rustc::dep_graph::graph::DepGraph::with_task_impl
             at src/librustc/dep_graph/graph.rs:325
  47: rustc::dep_graph::graph::DepGraph::with_task
             at src/librustc/dep_graph/graph.rs:193
  48: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
             at src/librustc/ty/query/plumbing.rs:543
  49: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at src/librustc/ty/query/plumbing.rs:267
  50: rustc::ty::context::tls::enter_context::{{closure}}
             at src/librustc/ty/context.rs:1766
  51: rustc::ty::context::tls::set_tlv
             at src/librustc/ty/context.rs:1699
  52: rustc::ty::context::tls::enter_context
             at src/librustc/ty/context.rs:1766
  53: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
             at src/librustc/ty/query/plumbing.rs:267
  54: rustc::ty::context::tls::with_related_context::{{closure}}
             at src/librustc/ty/context.rs:1854
  55: rustc::ty::context::tls::with_context::{{closure}}
             at src/librustc/ty/context.rs:1838
  56: rustc::ty::context::tls::with_context_opt
             at src/librustc/ty/context.rs:1827
  57: rustc::ty::context::tls::with_context
             at src/librustc/ty/context.rs:1838
  58: rustc::ty::context::tls::with_related_context
             at src/librustc/ty/context.rs:1851
  59: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
             at src/librustc/ty/query/plumbing.rs:256
  60: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
             at src/librustc/ty/query/plumbing.rs:533
  61: rustc::ty::query::plumbing::with_diagnostics
             at src/librustc/ty/query/plumbing.rs:201
  62: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
             at src/librustc/ty/query/plumbing.rs:532
  63: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
             at src/librustc/ty/query/plumbing.rs:369
  64: rustc::ty::query::TyCtxtAt::optimized_mir
             at src/librustc/ty/query/plumbing.rs:1048
  65: rustc::ty::query::<impl rustc::ty::context::TyCtxt>::optimized_mir
             at src/librustc/ty/query/plumbing.rs:1040
  66: rustc::ty::<impl rustc::ty::context::TyCtxt>::instance_mir
             at src/librustc/ty/mod.rs:2955
  67: rustc_mir::monomorphize::collector::collect_neighbours
             at src/librustc_mir/monomorphize/collector.rs:1221
  68: rustc_mir::monomorphize::collector::collect_items_rec
             at src/librustc_mir/monomorphize/collector.rs:381
  69: rustc_mir::monomorphize::collector::collect_items_rec
             at src/librustc_mir/monomorphize/collector.rs:391
  70: rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}::{{closure}}
             at src/librustc_mir/monomorphize/collector.rs:306
  71: core::iter::traits::iterator::Iterator::for_each::call::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/libcore/iter/traits/iterator.rs:652
  72: core::iter::traits::iterator::Iterator::fold::ok::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/libcore/iter/traits/iterator.rs:1900
  73: core::iter::traits::iterator::Iterator::try_fold
             at /home/matthias/vcs/github/rust_debug_assertions/src/libcore/iter/traits/iterator.rs:1776
  74: core::iter::traits::iterator::Iterator::fold
             at /home/matthias/vcs/github/rust_debug_assertions/src/libcore/iter/traits/iterator.rs:1903
  75: core::iter::traits::iterator::Iterator::for_each
             at /home/matthias/vcs/github/rust_debug_assertions/src/libcore/iter/traits/iterator.rs:655
  76: rustc_mir::monomorphize::collector::collect_crate_mono_items::{{closure}}
             at src/librustc_mir/monomorphize/collector.rs:304
  77: rustc::util::common::time_ext
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:54
  78: rustc::util::common::time
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:46
  79: rustc_mir::monomorphize::collector::collect_crate_mono_items
             at src/librustc_mir/monomorphize/collector.rs:303
  80: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items::{{closure}}
             at src/librustc_mir/monomorphize/partitioning.rs:870
  81: rustc::util::common::time_ext
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:54
  82: rustc::util::common::time
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:46
  83: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
             at src/librustc_mir/monomorphize/partitioning.rs:869
  84: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::collect_and_partition_mono_items>::compute::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:971
  85: rustc::ty::query::__query_compute::collect_and_partition_mono_items
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:922
  86: rustc::dep_graph::graph::DepGraph::with_task_impl
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/dep_graph/graph.rs:325
  87: rustc::dep_graph::graph::DepGraph::with_eval_always_task
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/dep_graph/graph.rs:372
  88: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:535
  89: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:267
  90: rustc::ty::context::tls::enter_context::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1766
  91: rustc::ty::context::tls::set_tlv
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1699
  92: rustc::ty::context::tls::enter_context
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1766
  93: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:267
  94: rustc::ty::context::tls::with_related_context::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1854
  95: rustc::ty::context::tls::with_context::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1838
  96: rustc::ty::context::tls::with_context_opt
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1827
  97: rustc::ty::context::tls::with_context
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1838
  98: rustc::ty::context::tls::with_related_context
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1851
  99: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::start_query
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:256
 100: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:533
 101: rustc::ty::query::plumbing::with_diagnostics
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:201
 102: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::force_query_with_job
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:532
 103: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:369
 104: rustc::ty::query::TyCtxtAt::collect_and_partition_mono_items
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:1048
 105: rustc::ty::query::<impl rustc::ty::context::TyCtxt>::collect_and_partition_mono_items
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/query/plumbing.rs:1040
 106: rustc_codegen_ssa::base::codegen_crate
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_codegen_ssa/base.rs:532
 107: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_utils::codegen_backend::CodegenBackend>::codegen_crate
             at src/librustc_codegen_llvm/lib.rs:263
 108: rustc_interface::passes::start_codegen::{{closure}}
             at src/librustc_interface/passes.rs:985
 109: rustc::util::common::time_ext
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:54
 110: rustc::util::common::time
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/util/common.rs:46
 111: rustc_interface::passes::start_codegen
             at src/librustc_interface/passes.rs:983
 112: rustc_interface::queries::Queries::ongoing_codegen::{{closure}}::{{closure}}
             at src/librustc_interface/queries.rs:282
 113: rustc_interface::passes::QueryContext::enter::{{closure}}
             at src/librustc_interface/passes.rs:711
 114: rustc::ty::context::tls::enter_global::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1789
 115: rustc::ty::context::tls::enter_context::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1766
 116: rustc::ty::context::tls::set_tlv
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1699
 117: rustc::ty::context::tls::enter_context
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1766
 118: rustc::ty::context::tls::enter_global
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1789
 119: rustc_interface::passes::QueryContext::enter
             at src/librustc_interface/passes.rs:711
 120: rustc_interface::queries::Queries::ongoing_codegen::{{closure}}
             at src/librustc_interface/queries.rs:276
 121: rustc_interface::queries::Query<T>::compute
             at src/librustc_interface/queries.rs:34
 122: rustc_interface::queries::Queries::ongoing_codegen
             at src/librustc_interface/queries.rs:274
 123: rustc_driver::run_compiler::{{closure}}::{{closure}}
             at src/librustc_driver/lib.rs:404
 124: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/queries.rs:332
 125: rustc_driver::run_compiler::{{closure}}
             at src/librustc_driver/lib.rs:295
 126: rustc_interface::interface::run_compiler_in_existing_thread_pool
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/interface.rs:184
 127: rustc_interface::interface::run_compiler::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/interface.rs:193
 128: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/util.rs:154
 129: rustc::ty::context::tls::with_thread_locals::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1755
 130: std::thread::local::LocalKey<T>::try_with
             at /home/matthias/vcs/github/rust_debug_assertions/src/libstd/thread/local.rs:262
 131: std::thread::local::LocalKey<T>::with
             at /home/matthias/vcs/github/rust_debug_assertions/src/libstd/thread/local.rs:239
 132: rustc::ty::context::tls::with_thread_locals::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1747
 133: std::thread::local::LocalKey<T>::try_with
             at /home/matthias/vcs/github/rust_debug_assertions/src/libstd/thread/local.rs:262
 134: std::thread::local::LocalKey<T>::with
             at /home/matthias/vcs/github/rust_debug_assertions/src/libstd/thread/local.rs:239
 135: rustc::ty::context::tls::with_thread_locals
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc/ty/context.rs:1739
 136: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/util.rs:154
 137: scoped_tls::ScopedKey<T>::set
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 138: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/util.rs:150
 139: scoped_tls::ScopedKey<T>::set
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 140: syntax::with_globals::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/libsyntax/lib.rs:60
 141: scoped_tls::ScopedKey<T>::set
             at /home/matthias/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 142: syntax::with_globals
             at /home/matthias/vcs/github/rust_debug_assertions/src/libsyntax/lib.rs:60
 143: rustc_interface::util::spawn_thread_pool::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/util.rs:149
 144: rustc_interface::util::scoped_thread::{{closure}}
             at /home/matthias/vcs/github/rust_debug_assertions/src/librustc_interface/util.rs:126
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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.42.0-dev running on x86_64-unknown-linux-gnu

note: compiler flags: -Z mir-opt-level=2

query stack during panic:
#0 [optimized_mir] processing `f`
#1 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack

rustc @ bbf1372

@jonas-schievink jonas-schievink added A-mir Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. requires-nightly This issue requires a nightly compiler in some way. labels Dec 27, 2019
@Centril
Copy link
Contributor

Centril commented Dec 28, 2019

cc @wesleywiser @oli-obk

@oli-obk
Copy link
Contributor

oli-obk commented Dec 29, 2019

Heh, the first victim of const prop acting as if it were creating constants.

Previous discussion on zulip: https://rust-lang.zulipchat.com/#narrow/stream/189540-t-compiler.2Fwg-mir-opt/topic/const.20prop.20breaking.20const.20rules/near/183548094

bors added a commit that referenced this issue Jan 18, 2020
Turn off const propagation of ref taking

Fixes #67529
Fixes #67640
Fixes #67641
Fixes #67862

r? @oli-obk
@bors bors closed this as completed in 7f65475 Jan 18, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-mir Area: Mid-level IR (MIR) - https://blog.rust-lang.org/2016/04/19/MIR.html C-bug Category: This is a bug. I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ requires-nightly This issue requires a nightly compiler in some way. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants