//@ needs-asm-support #![feature(naked_functions)] #![feature(fn_align)] #![crate_type = "lib"] use std::arch::naked_asm; #[repr(C)] //~^ ERROR attribute should be applied to a struct, enum, or union [E0517] #[naked] extern "C" fn example1() { //~^ NOTE not a struct, enum, or union unsafe { naked_asm!("") } } #[repr(transparent)] //~^ ERROR attribute should be applied to a struct, enum, or union [E0517] #[naked] extern "C" fn example2() { //~^ NOTE not a struct, enum, or union unsafe { naked_asm!("") } } #[repr(align(16), C)] //~^ ERROR attribute should be applied to a struct, enum, or union [E0517] #[naked] extern "C" fn example3() { //~^ NOTE not a struct, enum, or union unsafe { naked_asm!("") } } // note: two errors because of packed and C #[repr(C, packed)] //~^ ERROR attribute should be applied to a struct or union [E0517] //~| ERROR attribute should be applied to a struct, enum, or union [E0517] #[naked] extern "C" fn example4() { //~^ NOTE not a struct, enum, or union //~| NOTE not a struct or union unsafe { naked_asm!("") } } #[repr(u8)] //~^ ERROR attribute should be applied to an enum [E0517] #[naked] extern "C" fn example5() { //~^ NOTE not an enum unsafe { naked_asm!("") } }