1 // Test that the compiler will catch passing invalid values to inline assembly
21 asm!("" :: "r"("")); //~ ERROR E0669
25 let target = MyPtr(0);
26 asm!("ret" : : "{rdi}"(target)); //~ ERROR E0669
31 let hello: &str = "hello";
32 // this should fail...
33 unsafe { asm!("" :: "i"(hello)) }; //~ ERROR E0669
34 // but this should succeed.
35 unsafe { asm!("" :: "r"(hello.as_ptr())) };
39 let arr: [u8; 1] = [0; 1];
41 asm!("movups $1, %xmm0"::"m"(arr)); //~ ERROR E0669
46 let addr: Option<u32> = Some(123);
48 asm!("mov sp, $0"::"r"(addr)); //~ ERROR E0669
52 fn multiple_errors() {
53 let addr: (u32, u32) = (1, 2);
55 asm!("mov sp, $0"::"r"(addr), //~ ERROR E0669
56 "r"("hello e0669")); //~ ERROR E0669