// Compiler: // // Run-time: // stdout: 2 // 7 8 // 10 #![feature(no_core)] #![no_std] #![no_core] #![no_main] extern crate mini_core; use mini_core::*; fn inc_ref(num: &mut isize) -> isize { *num = *num + 5; *num + 1 } fn inc(num: isize) -> isize { num + 1 } #[no_mangle] extern "C" fn main(mut argc: isize, _argv: *const *const u8) -> i32 { argc = inc(argc); unsafe { libc::printf(b"%ld\n\0" as *const u8 as *const i8, argc); } let b = inc_ref(&mut argc); unsafe { libc::printf(b"%ld %ld\n\0" as *const u8 as *const i8, argc, b); } argc = 10; unsafe { libc::printf(b"%ld\n\0" as *const u8 as *const i8, argc); } 0 }