| //@ needs-asm-support |
| //@ build-pass |
| |
| #![feature(asm_const)] |
| |
| use std::arch::asm; |
| |
| fn foofoo<const N: usize>() {} |
| |
| unsafe fn foo<const N: usize>() { |
| asm!("/* {0} */", const N); |
| asm!("/* {0} */", const N + 1); |
| asm!("/* {0} */", sym foofoo::<N>); |
| } |
| |
| fn barbar<T>() {} |
| |
| unsafe fn bar<T>() { |
| asm!("/* {0} */", const std::mem::size_of::<T>()); |
| asm!("/* {0} */", const std::mem::size_of::<(T, T)>()); |
| asm!("/* {0} */", sym barbar::<T>); |
| asm!("/* {0} */", sym barbar::<(T, T)>); |
| } |
| |
| fn main() { |
| unsafe { |
| foo::<0>(); |
| bar::<usize>(); |
| } |
| } |