Closed
Description
The following program causes an ICE:
fn main() {
match ("", "") {
(a, "") => a,
("", b) => b,
};
}
The compiler output, with backtraces enabled, is:
$ RUST_BACKTRACE=1 rustc test.rs
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug.
note: we would appreciate a bug report: http://doc.rust-lang.org/complement-bugreport.html
note: run with `RUST_BACKTRACE=1` for a backtrace
task 'rustc' failed at 'index out of bounds: the len is 0 but the index is 0', /home/matt/code/apps/rust/rust/src/librustc/middle/check_match.rs:250
stack backtrace:
1: 0x7fa0afc51af0 - rt::backtrace::imp::write::h58498fa079570ea6AGp::v0.11.0.pre
2: 0x7fa0afc59220 - failure::on_fail::ha6379e4c4ae5dc18N1p::v0.11.0.pre
3: 0x7fa0b03ef870 - unwind::begin_unwind_inner::hd80eddaab5a23324QRd::v0.11.0.pre
4: 0x7fa0b03ef300 - unwind::begin_unwind_fmt::h9099725093fae462jPd::v0.11.0.pre
5: 0x7fa0b03ef2c0 - rust_begin_unwind
6: 0x7fa0b043e110 - failure::begin_unwind::h6da20b95db835a9a23v::v0.11.0.pre
7: 0x7fa0b0441f00 - failure::fail_bounds_check::h4924096447067a67e2v::v0.11.0.pre
8: 0x7fa0b0f1e880 - middle::check_match::is_useful::h86038b3c4ff660f459A::v0.11.0.pre
9: 0x7fa0b0f1e880 - middle::check_match::is_useful::h86038b3c4ff660f459A::v0.11.0.pre
10: 0x7fa0b0f242c0 - middle::check_match::is_useful_specialized::h8c30afeb07f47663nhB::v0.11.0.pre
11: 0x7fa0b0f1e880 - middle::check_match::is_useful::h86038b3c4ff660f459A::v0.11.0.pre
12: 0x7fa0b0f242c0 - middle::check_match::is_useful_specialized::h8c30afeb07f47663nhB::v0.11.0.pre
13: 0x7fa0b0f1e880 - middle::check_match::is_useful::h86038b3c4ff660f459A::v0.11.0.pre
14: 0x7fa0b0f18f90 - middle::check_match::check_expr::hf9af3ea0df0373f5BRA::v0.11.0.pre
15: 0x7fa0b0f1dca0 - visit::Visitor::visit_block::h9833201876906112987::v0.11.0.pre
16: 0x7fa0b0f1ba90 - middle::check_match::check_fn::hbc4df80e3ee3042bBQB::v0.11.0.pre
17: 0x7fa0b0f1c9d0 - visit::walk_item::h15784207179804928906::v0.11.0.pre
18: 0x7fa0b0f1bf40 - middle::check_match::check_crate::hf2b699455d6a2b2b7QA::v0.11.0.pre
19: 0x7fa0b13c0bf0 - driver::driver::phase_3_run_analysis_passes::h26bdb20640374ad81mv::v0.11.0.pre
20: 0x7fa0b13b9160 - driver::driver::compile_input::h71908766a89db12fgbv::v0.11.0.pre
21: 0x7fa0b1483c10 - driver::run_compiler::h75dfd515de0d47cfOSx::v0.11.0.pre
22: 0x7fa0b1483b20 - driver::main_args::closure.98525
23: 0x7fa0b149f680 - driver::monitor::closure.99615
24: 0x7fa0b149a5c0 - task::TaskBuilder::try::closure.99378
25: 0x7fa0b33bfc60 - task::spawn_opts::closure.7148
26: 0x7fa0b03ec420 - task::Task::run::closure.5303
27: 0x7fa0b0457960 - rust_try
28: 0x7fa0b03eee60 - unwind::try::ha9ea19d69d80ec42fGd::v0.11.0.pre
29: 0x7fa0b03ec2a0 - task::Task::run::h0268eeb27ce86be2VVc::v0.11.0.pre
30: 0x7fa0b33bfa00 - task::spawn_opts::closure.7121
31: 0x7fa0b03ee430 - thread::thread_start::hf5e1787e63284712kdd::v0.11.0.pre
32: 0x7fa0af6cd000 - start_thread
33: 0x7fa0b00c4fc9 - __clone
34: 0x0 - <unknown>
Rust version:
$ rustc -v
rustc 0.11.0-pre (6d8342f 2014-06-14 17:51:49 +0000)
host: x86_64-unknown-linux-gnu
running on Debian unstable.