| //@ run-pass | |
| #![allow(dead_code)] | |
| #[repr(align(256))] | |
| struct A { | |
| v: u8, | |
| } | |
| impl A { | |
| fn f(&self) -> *const A { | |
| self | |
| } | |
| } | |
| fn f2(v: u8) -> Box<dyn FnOnce() -> *const A> { | |
| let a = A { v }; | |
| Box::new(move || a.f()) | |
| } | |
| fn main() { | |
| let addr = f2(0)(); | |
| assert_eq!(addr as usize % 256, 0, "addr: {:?}", addr); | |
| } |