trans: don't declare symbols that were already imported.

This commit is contained in:
Eduard Burtescu 2016-04-05 13:01:00 +03:00
parent 600dc3552f
commit e17c48bb24
3 changed files with 53 additions and 23 deletions

View file

@ -31,9 +31,20 @@ mod rustrt2 {
}
}
pub fn main() {
unsafe {
rustrt1::rust_get_test_int();
rustrt2::rust_get_test_int();
mod rustrt3 {
// Different type, but same ABI (on all supported platforms).
// Ensures that we don't ICE or trigger LLVM asserts when
// importing the same symbol under different types.
// See https://github.com/rust-lang/rust/issues/32740.
extern {
pub fn rust_get_test_int() -> *const u8;
}
}
pub fn main() {
unsafe {
let x = rustrt1::rust_get_test_int();
assert_eq!(x, rustrt2::rust_get_test_int());
assert_eq!(x as *const _, rustrt3::rust_get_test_int());
}
}