| // Compiler: | |
| // | |
| // Run-time: | |
| // status: 0 | |
| // stdout: 10 | |
| // 10 | |
| // 42 | |
| // 1 | |
| #![feature(no_core)] | |
| #![no_std] | |
| #![no_core] | |
| #![no_main] | |
| extern crate mini_core; | |
| use mini_core::*; | |
| fn int_cast(a: u16, b: i16) -> (u8, u16, u32, usize, i8, i16, i32, isize, u8, u32) { | |
| ( | |
| a as u8, a as u16, a as u32, a as usize, a as i8, a as i16, a as i32, a as isize, b as u8, | |
| b as u32, | |
| ) | |
| } | |
| static mut ONE: usize = 1; | |
| #[no_mangle] | |
| extern "C" fn main(argc: i32, _argv: *const *const u8) -> i32 { | |
| let (a, b, c, d, e, f, g, h, i, j) = int_cast(10, 42); | |
| unsafe { | |
| libc::printf(b"%d\n\0" as *const u8 as *const i8, c); | |
| libc::printf(b"%ld\n\0" as *const u8 as *const i8, d); | |
| libc::printf(b"%ld\n\0" as *const u8 as *const i8, j); | |
| let ptr = ONE as *mut usize; | |
| let value = ptr as usize; | |
| libc::printf(b"%ld\n\0" as *const u8 as *const i8, value); | |
| } | |
| 0 | |
| } |