Closed ldanko closed 9 years ago
I accidentially defined an enum in the wrong way, compiler crashed just after wrinting error messsage.
I tried this code:
#![crate_name = "Test"] #![crate_type = "dylib"] #[repr(C)] enum Foo { Foo_X = 0, Foo_Y = Foo::Foo_X, } #[repr(C)] enum Bar { Bar_X = 0, Bar_Y = Foo::Bar_X, }
rustc --version --verbose:
rustc --version --verbose
rustc 1.1.0 (35ceea399 2015-06-19) binary: rustc commit-hash: 35ceea3997c79a3b7562e89b462ab76af5b86b22 commit-date: 2015-06-19 host: x86_64-unknown-linux-gnu release: 1.1.0
Backtrace: RUST_BACKTRACE=1 rustc crash.rs --verbose:
RUST_BACKTRACE=1 rustc crash.rs --verbose
crash.rs:5:1: 7:2 error: unsupported representation for univariant enum [E0083] crash.rs:5 enum Foo { crash.rs:6 Foo_X = 0, crash.rs:7 } crash.rs:5:1: 7:2 help: run `rustc --explain E0083` to see a detailed explanation crash.rs:10:1: 12:2 error: unsupported representation for univariant enum [E0083] crash.rs:10 enum Bar { crash.rs:11 Bar_X = Foo::Bar_X, crash.rs:12 } crash.rs:10:1: 12:2 help: run `rustc --explain E0083` to see a detailed explanation crash.rs:11:13: 11:23 error: no associated item named `Bar_X` found for type `Foo` in the current scope crash.rs:11 Bar_X = Foo::Bar_X, ^~~~~~~~~~ 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: run with `RUST_BACKTRACE=1` for a backtrace thread 'rustc' panicked at 'path not fully resolved: PathResolution { base_def: DefTy(DefId { krate: 0, node: 4 }, true), last_private: LastMod(AllPublic), depth: 1 }', /home/rustbuild/src/rust-buildbot/slave/stable-dist-rustc-linux/build/src/librustc/middle/def.rs:81 stack backtrace: 1: 0x7fd9db382529 - sys::backtrace::write::ha3b8868b13c6f5b594r 2: 0x7fd9db38a449 - panicking::on_panic::h0d4f0a7bb69824a9iJw 3: 0x7fd9db34b242 - rt::unwind::begin_unwind_inner::h6eae1ff9ccde81e1sow 4: 0x7fd9db34bfd7 - rt::unwind::begin_unwind_fmt::h1b64aa0dc7f97d91ynw 5: 0x7fd9d93163fb - middle::const_eval::eval_const_expr_partial::hca04fb7b356ab7d1Sii 6: 0x7fd9d94e7861 - middle::ty::enum_variants::closure.92905 7: 0x7fd9d932d35c - middle::ty::enum_variants::h359849520637f4b28q8 8: 0x7fd9dab39a8a - check::CheckItemTypesVisitor<'a, 'tcx>.Visitor<'tcx>::visit_item::heb2e559aa222011aLqn 9: 0x7fd9dabfd58a - check_crate::closure.38929 10: 0x7fd9dabf704c - check_crate::h8ed0000b4b6dbbd2sJC 11: 0x7fd9db8d21ef - driver::phase_3_run_analysis_passes::h9b9e8dc3e9bbf431tGa 12: 0x7fd9db8b606c - driver::compile_input::h6e596544d26b4394Qba 13: 0x7fd9db96c041 - run_compiler::haa6c0289fab7415475b 14: 0x7fd9db969892 - boxed::F.FnBox<A>::call_box::h10721825727138786690 15: 0x7fd9db968e59 - rt::unwind::try::try_fn::h6014602198652783625 16: 0x7fd9db402b58 - rust_try_inner 17: 0x7fd9db402b45 - rust_try 18: 0x7fd9db9690f4 - boxed::F.FnBox<A>::call_box::h5510246712457526188 19: 0x7fd9db3891e1 - sys::thread::Thread::new::thread_start::h11fbc90f6ba541f9zvv 20: 0x7fd9d5c0d6a9 - start_thread 21: 0x7fd9dafd2eec - clone 22: 0x0 - <unknown>
This looks like #26483
Fixed by #28686.
I accidentially defined an enum in the wrong way, compiler crashed just after wrinting error messsage.
I tried this code:
Meta
rustc --version --verbose
:Backtrace:
RUST_BACKTRACE=1 rustc crash.rs --verbose
: