Skip to content

Extra type parameters make compiler panic calling Option::unwrap() on None #36954

Closed
@raphaelcohn

Description

@raphaelcohn

There's been a change in the Rust nightly compiler sometime between 2016-09-15 and 2016-09-28 (both inclusive) that causes it to ICE on the code in this repository. Compiling on Mac OS X El Capitan, using TARGET_CC=x86_64-linux-musl-cc exec cargo build --target=x86_64-unknown-linux-musl (this assumes brew install FiloSottile/musl-cross/musl-cross using Homebrew).

There are no code changes. A backtrace shows the following:-

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: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', ../src/libcore/option.rs:323
stack backtrace:
   1:        0x1127ec288 - std::sys::backtrace::tracing::imp::write::hb03a0f85d9cccd1b
   2:        0x1127f99ff - std::panicking::default_hook::{{closure}}::h945d25329ef3fdd6
   3:        0x1127f6efd - std::panicking::default_hook::hc98de28314f7e4d1
   4:        0x1127f7596 - std::panicking::rust_panic_with_hook::hf47d6a84575c96f5
   5:        0x1127f7434 - std::panicking::begin_panic::heb2e59d774c89ce6
   6:        0x1127f7352 - std::panicking::begin_panic_fmt::h2640a71eaf059834
   7:        0x1127f72b7 - rust_begin_unwind
   8:        0x112837640 - core::panicking::panic_fmt::h8e7400f6438ecb75
   9:        0x112837544 - core::panicking::panic::h61585b9964ba1fa2
  10:        0x10f3e6e05 - rustc_const_eval::eval::eval_const_expr_partial::h27ecb783f31aa113
  11:        0x10f3e53d5 - rustc_const_eval::eval::eval_const_expr_partial::h27ecb783f31aa113
  12:        0x10f3e3375 - rustc_const_eval::eval::eval_const_expr_partial::h27ecb783f31aa113
  13:        0x10f3d6b5f - rustc::hir::Pat::walk_::h112ba77c5a1884b6
  14:        0x10f3ee2d3 - rustc_const_eval::check_match::check_expr::h0ec31ffaf8981f57
  15:        0x10f3ed38a - rustc_const_eval::check_match::check_expr::h0ec31ffaf8981f57
  16:        0x10f3ed38a - rustc_const_eval::check_match::check_expr::h0ec31ffaf8981f57
  17:        0x10f3fb3fa - rustc_const_eval::check_match::check_fn::h86267ad0b244e886
  18:        0x10f3ec59a - rustc_const_eval::check_match::check_crate::hfbd5f166424f830a
  19:        0x10e6ca528 - rustc_driver::driver::phase_3_run_analysis_passes::{{closure}}::h24ab4d83fd97a88e
  20:        0x10e695296 - rustc_driver::driver::phase_3_run_analysis_passes::h007ecd1fd02a4683
  21:        0x10e68829a - rustc_driver::driver::compile_input::h8a5ca0f49da8c80a
  22:        0x10e6b0188 - rustc_driver::run_compiler::ha0d125e702c7be63
  23:        0x10e5f0bb0 - std::panicking::try::do_call::h25f69b2f74f3cecc
  24:        0x1127f9fba - __rust_maybe_catch_panic
  25:        0x10e610594 - <F as alloc::boxed::FnBox<A>>::call_box::h18252cde177b90c5
  26:        0x1127f61b4 - std::sys::thread::Thread::new::thread_start::h66211a1b34bcffec
  27:     0x7fff8f34e99c - _pthread_body
  28:     0x7fff8f34e919 - _pthread_start

When the code compiles with the older Rust compiler, the output is:-

warning: lint drop_with_repr_extern has been removed: drop flags have been removed
  |
  = note: requested on the command line with `-D drop_with_repr_extern`

warning: unused import, #[warn(unused_imports)] on by default
  --> src/wrapper/ringQueues/mod.rs:16:5
   |
16 | use ::wrapper::ringQueues::consumers::SingleConsumer;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import, #[warn(unused_imports)] on by default
  --> src/wrapper/ringQueues/mod.rs:17:5
   |
17 | use ::wrapper::ringQueues::consumers::MultiConsumer;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import, #[warn(unused_imports)] on by default
  --> src/wrapper/ringQueues/mod.rs:23:5
   |
23 | use ::wrapper::ringQueues::producers::SingleProducer;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import, #[warn(unused_imports)] on by default
  --> src/wrapper/ringQueues/mod.rs:24:5
   |
24 | use ::wrapper::ringQueues::producers::MultiProducer;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

I'll try to triage further.

Metadata

Metadata

Assignees

No one assigned

    Labels

    E-help-wantedCall for participation: Help is requested to fix this issue.E-mentorCall for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions