diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-06-25 09:13:30 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-06-25 09:33:15 -0700 |
| commit | 759a7f1f66490191a6f809c9709151d6d27cea87 (patch) | |
| tree | 8d29beb7373e1975fabf7f0b49c3d2305e6c6256 | |
| parent | 9e3cb6447596049464292c0afa8c4b9a0cb8c806 (diff) | |
| download | rust-759a7f1f66490191a6f809c9709151d6d27cea87.tar.gz rust-759a7f1f66490191a6f809c9709151d6d27cea87.zip | |
test: Use liblibc in lang-item-public
Makes this test case more robust by using standard libraries to ensure the binary can be built.
| -rw-r--r-- | src/test/auxiliary/lang-item-public.rs | 35 | ||||
| -rw-r--r-- | src/test/run-pass/lang-item-public.rs | 30 |
2 files changed, 8 insertions, 57 deletions
diff --git a/src/test/auxiliary/lang-item-public.rs b/src/test/auxiliary/lang-item-public.rs index d195bd7e77b..4b60a370187 100644 --- a/src/test/auxiliary/lang-item-public.rs +++ b/src/test/auxiliary/lang-item-public.rs @@ -8,15 +8,12 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(no_std)] +#![feature(no_std, core, libc)] #![no_std] #![feature(lang_items)] -#[lang="sized"] -pub trait Sized { } - -#[lang="panic"] -fn panic(_: &(&'static str, &'static str, usize)) -> ! { loop {} } +extern crate core; +extern crate libc; #[lang = "stack_exhausted"] extern fn stack_exhausted() {} @@ -24,26 +21,8 @@ extern fn stack_exhausted() {} #[lang = "eh_personality"] extern fn eh_personality() {} -#[lang="copy"] -pub trait Copy { - // Empty. -} - -#[lang="rem"] -pub trait Rem<RHS=Self> { - type Output = Self; - fn rem(self, rhs: RHS) -> Self::Output; -} - -impl Rem for isize { - type Output = isize; - - #[inline] - fn rem(self, other: isize) -> isize { - // if you use `self % other` here, as one would expect, you - // get back an error because of potential failure/overflow, - // which tries to invoke error fns that don't have the - // appropriate signatures anymore. So...just return 0. - 0 - } +#[lang = "panic_fmt"] +extern fn rust_begin_unwind(msg: core::fmt::Arguments, file: &'static str, + line: u32) -> ! { + loop {} } diff --git a/src/test/run-pass/lang-item-public.rs b/src/test/run-pass/lang-item-public.rs index f5b9bd4fbaa..57a32ba599f 100644 --- a/src/test/run-pass/lang-item-public.rs +++ b/src/test/run-pass/lang-item-public.rs @@ -11,39 +11,11 @@ // aux-build:lang-item-public.rs // ignore-android -#![feature(lang_items, start, no_std)] +#![feature(start, no_std)] #![no_std] extern crate lang_item_public as lang_lib; -#[cfg(target_os = "linux")] -#[link(name = "c")] -extern {} - -#[cfg(target_os = "android")] -#[link(name = "c")] -extern {} - -#[cfg(target_os = "freebsd")] -#[link(name = "execinfo")] -extern {} - -#[cfg(target_os = "freebsd")] -#[link(name = "c")] -extern {} - -#[cfg(target_os = "dragonfly")] -#[link(name = "c")] -extern {} - -#[cfg(any(target_os = "bitrig", target_os = "openbsd"))] -#[link(name = "c")] -extern {} - -#[cfg(target_os = "macos")] -#[link(name = "System")] -extern {} - #[start] fn main(_: isize, _: *const *const u8) -> isize { 1_isize % 1_isize |
