//@ add-core-stubs //@ compile-flags: --target thumbv8m.main-none-eabi --crate-type lib //@ needs-llvm-components: arm //@ add-core-stubs #![feature(abi_cmse_nonsecure_call, no_core, lang_items)] #![no_core] extern crate minicore; use minicore::*; #[repr(C)] pub struct ReprCU64(u64); #[repr(C)] pub struct ReprCBytes(u8, u8, u8, u8, u8); #[repr(C)] pub struct U64Compound(u32, u32); #[repr(C, align(16))] pub struct ReprCAlign16(u16); #[no_mangle] pub fn test( f1: extern "cmse-nonsecure-call" fn() -> ReprCU64, //~ ERROR [E0798] f2: extern "cmse-nonsecure-call" fn() -> ReprCBytes, //~ ERROR [E0798] f3: extern "cmse-nonsecure-call" fn() -> U64Compound, //~ ERROR [E0798] f4: extern "cmse-nonsecure-call" fn() -> ReprCAlign16, //~ ERROR [E0798] f5: extern "cmse-nonsecure-call" fn() -> [u8; 5], //~ ERROR [E0798] ) { } #[allow(improper_ctypes_definitions)] struct Test { u128: extern "cmse-nonsecure-call" fn() -> u128, //~ ERROR [E0798] i128: extern "cmse-nonsecure-call" fn() -> i128, //~ ERROR [E0798] } #[repr(C)] pub union ReprCUnionU64 { _unused: u64, } #[repr(Rust)] pub union ReprRustUnionU64 { _unused: u64, } #[no_mangle] pub fn test_union( f1: extern "cmse-nonsecure-call" fn() -> ReprRustUnionU64, //~ ERROR [E0798] f2: extern "cmse-nonsecure-call" fn() -> ReprCUnionU64, //~ ERROR [E0798] ) { }