| //@ edition: 2021 |
| //@ needs-asm-support |
| //@ ignore-nvptx64 |
| //@ ignore-spirv |
| |
| #![feature(naked_functions)] |
| #![crate_type = "lib"] |
| |
| use std::arch::naked_asm; |
| |
| fn main() { |
| test1(); |
| } |
| |
| #[naked] |
| extern "C" fn test1() { |
| unsafe { naked_asm!("") } |
| } |
| |
| extern "C" fn test2() { |
| unsafe { naked_asm!("") } |
| //~^ ERROR the `naked_asm!` macro can only be used in functions marked with `#[naked]` |
| } |
| |
| extern "C" fn test3() { |
| unsafe { (|| naked_asm!(""))() } |
| //~^ ERROR the `naked_asm!` macro can only be used in functions marked with `#[naked]` |
| } |
| |
| fn test4() { |
| async move { |
| unsafe { naked_asm!("") } ; |
| //~^ ERROR the `naked_asm!` macro can only be used in functions marked with `#[naked]` |
| }; |
| } |