rust/tests/ui/asm/generic-const.rs

31 lines
580 B
Rust

//@ 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>();
}
}