Closed
Description
Given this example,
struct I2CReg {
test: u32
}
extern {
#[link_name="k20_iomem_I2C0"] pub static I2C0: I2CReg;
}
struct I2C {
reg: &'static I2CReg
}
static mut i2c0: I2C = I2C {
reg: &I2C0
};
The compiler fails with,
$ RUST_BACKTRACE=1 rustc ~/hi.rs
error: main function not found
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 'expected item, found foreign item I2C0::I2C0 (id=10)', /opt/exp/rust/src/libsyntax/ast_map/mod.rs:327
stack backtrace:
1: 0x7f8177084ac0 - rt::backtrace::imp::write::h1ca5678a3ff3db86FKq
2: 0x7f8177087bf0 - failure::on_fail::h5e5f8014b5357c8925q
3: 0x7f817784c120 - unwind::begin_unwind_inner::h8d456ef7c87c11498yd
4: 0x7f817784bc60 - unwind::begin_unwind_fmt::hca0e3d62c3383802Awd
5: 0x7f81735515a0 - ast_map::Map<'ast>::expect_item::h334acf2fbc39b3c5ZyA
6: 0x7f8177fcc880 - middle::check_static_recursion::CheckItemRecursionVisitor<'a, 'ast>.Visitor<'v>::visit_expr::he096ace2658f1b8bbBm
7: 0x7f8177fcc880 - middle::check_static_recursion::CheckItemRecursionVisitor<'a, 'ast>.Visitor<'v>::visit_expr::he096ace2658f1b8bbBm
8: 0x7f8177fcb690 - middle::check_static_recursion::CheckItemRecursionVisitor<'a, 'ast>.Visitor<'v>::visit_item::hed53c23550405e1ahAm
9: 0x7f8177fcb2c0 - middle::check_static_recursion::check_item_recursion::h5327b315a0b31aa3yzm
10: 0x7f8177fc96a0 - middle::check_static_recursion::check_item::hd99fb3896a763d44hym
11: 0x7f8177fca090 - middle::check_static_recursion::check_crate::hd6acd800f78889b5Axm
12: 0x7f8177da3360 - util::common::time::h12472689958318282120
13: 0x7f8178653240 - driver::driver::phase_3_run_analysis_passes::hce054544bc712d7cY9z
14: 0x7f817864e380 - driver::driver::compile_input::h63529e8fd125edb4KQz
15: 0x7f81786d9770 - driver::run_compiler::h7dbfcf2997d50ba64DD
16: 0x7f81786d9620 - driver::run::closure.145928
17: 0x7f8177dbd1f0 - task::TaskBuilder<S>::try_future::closure.103305
18: 0x7f8177dbcfd0 - task::TaskBuilder<S>::spawn_internal::closure.103276
19: 0x7f8178f3d040 - task::spawn_opts::closure.8464
20: 0x7f81779fdf40 - rust_try_inner
21: 0x7f81779fdf30 - rust_try
22: 0x7f81778499e0 - unwind::try::heab2ced16db50a7aQnd
23: 0x7f8177849860 - task::Task::run::h1f2a16a1fd2bfec6uDc
24: 0x7f8178f3cd80 - task::spawn_opts::closure.8404
25: 0x7f817784b130 - thread::thread_start::hfee97593d1ff979fFXc
26: 0x7f8176b4b0c0 - start_thread
27: 0x7f8177513f89 - __clone
28: 0x0 - <unknown>