36 lines
725 B
Rust
36 lines
725 B
Rust
|
//@ 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]`
|
||
|
};
|
||
|
}
|