| // 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 | 
 | } |