| // Compiler: | |
| // | |
| // Run-time: | |
| // status: 0 | |
| #![feature(no_core)] | |
| #![no_std] | |
| #![no_core] | |
| #![no_main] | |
| extern crate mini_core; | |
| use mini_core::*; | |
| #[repr(C)] | |
| struct Big { | |
| a: i64, | |
| b: i64, | |
| c: i64, | |
| } | |
| #[repr(C, align(64))] | |
| struct Aligned { | |
| x: i32, | |
| } | |
| #[inline(never)] | |
| #[no_mangle] | |
| extern "C" fn check(_b1: Big, a1: Aligned, _b2: Big, a2: Aligned) -> i32 { | |
| if (&a1 as *const Aligned as usize) % 64 != 0 { | |
| return 1; | |
| } | |
| if (&a2 as *const Aligned as usize) % 64 != 0 { | |
| return 2; | |
| } | |
| 0 | |
| } | |
| #[no_mangle] | |
| extern "C" fn main(_argc: i32, _argv: *const *const u8) -> i32 { | |
| check(Big { a: 1, b: 2, c: 3 }, Aligned { x: 42 }, Big { a: 4, b: 5, c: 6 }, Aligned { x: 43 }) | |
| } |