//@ needs-asm-support //@ ignore-nvptx64 //@ ignore-spirv use std::arch::{asm, global_asm}; fn main() { unsafe { // Outputs must be place expressions asm!("{}", in(reg) 1 + 2); asm!("{}", out(reg) 1 + 2); //~^ ERROR invalid asm output asm!("{}", inout(reg) 1 + 2); //~^ ERROR invalid asm output // Operands must be sized let v: [u64; 3] = [0, 1, 2]; asm!("{}", in(reg) v[..]); //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time //~| ERROR cannot use value of type `[u64]` for inline assembly asm!("{}", out(reg) v[..]); //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time //~| ERROR cannot use value of type `[u64]` for inline assembly asm!("{}", inout(reg) v[..]); //~^ ERROR the size for values of type `[u64]` cannot be known at compilation time //~| ERROR cannot use value of type `[u64]` for inline assembly } }