diff options
| author | Folkert <folkert@folkertdev.nl> | 2024-07-16 14:24:49 +0200 |
|---|---|---|
| committer | Folkert de Vries <folkert@folkertdev.nl> | 2024-09-21 13:05:23 +0200 |
| commit | a33dcb3607ee763616f374eeaa84ddaf41d41ef4 (patch) | |
| tree | 277feb89bcf04273df6f4e1910e0acceba3fff7e /tests/ui/cmse-nonsecure | |
| parent | 5722a8078225cff7d420cc6b246706963e707258 (diff) | |
| download | rust-a33dcb3607ee763616f374eeaa84ddaf41d41ef4.tar.gz rust-a33dcb3607ee763616f374eeaa84ddaf41d41ef4.zip | |
add test that accepts a `C-cmse-nonsecure-call` function pointer
Diffstat (limited to 'tests/ui/cmse-nonsecure')
| -rw-r--r-- | tests/ui/cmse-nonsecure/cmse-nonsecure-call/callback-as-argument.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ui/cmse-nonsecure/cmse-nonsecure-call/callback-as-argument.rs b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/callback-as-argument.rs new file mode 100644 index 00000000000..37c8319d98d --- /dev/null +++ b/tests/ui/cmse-nonsecure/cmse-nonsecure-call/callback-as-argument.rs @@ -0,0 +1,20 @@ +//@ build-pass +//@ compile-flags: --target thumbv8m.main-none-eabi --crate-type lib +//@ needs-llvm-components: arm +#![feature(abi_c_cmse_nonsecure_call, cmse_nonsecure_entry, no_core, lang_items, intrinsics)] +#![no_core] +#[lang = "sized"] +pub trait Sized {} +#[lang = "copy"] +pub trait Copy {} +impl Copy for u32 {} + +#[no_mangle] +pub extern "C-cmse-nonsecure-entry" fn test( + f: extern "C-cmse-nonsecure-call" fn(u32, u32, u32, u32) -> u32, + a: u32, + b: u32, + c: u32, +) -> u32 { + f(a, b, c, 42) +} |
