// Compiler: // // Run-time: // status: 0 // stdout: 10 // 14 // 1 // 12 // 12 // 1 #![feature(no_core)] #![no_std] #![no_core] #![no_main] extern crate mini_core; use mini_core::*; struct Test { field: isize, } struct WithRef { refe: &'static Test, } static mut CONSTANT: isize = 10; static mut TEST: Test = Test { field: 12 }; static mut TEST2: Test = Test { field: 14 }; static mut WITH_REF: WithRef = WithRef { refe: unsafe { &TEST } }; #[no_mangle] extern "C" fn main(argc: isize, _argv: *const *const u8) -> i32 { unsafe { libc::printf(b"%ld\n\0" as *const u8 as *const i8, CONSTANT); libc::printf(b"%ld\n\0" as *const u8 as *const i8, TEST2.field); TEST2.field = argc; libc::printf(b"%ld\n\0" as *const u8 as *const i8, TEST2.field); libc::printf(b"%ld\n\0" as *const u8 as *const i8, WITH_REF.refe.field); WITH_REF.refe = &TEST2; libc::printf(b"%ld\n\0" as *const u8 as *const i8, TEST.field); libc::printf(b"%ld\n\0" as *const u8 as *const i8, WITH_REF.refe.field); } 0 }