aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Jorge Aparicio <jorge@japaric.io> 2018-09-06 01:27:48 +0200
committerGravatar Jorge Aparicio <jorge@japaric.io> 2018-09-06 01:27:48 +0200
commit943edfa8715cb9c5783211011d8242edda1fb6ab (patch)
treed47b25ec65af1fa9cad3418b63e9fefb170d75be
parent19fcb13d22a56e01fd2fa5d34051196f59c9511b (diff)
downloadcortex-m-943edfa8715cb9c5783211011d8242edda1fb6ab.tar.gz
cortex-m-943edfa8715cb9c5783211011d8242edda1fb6ab.tar.zst
cortex-m-943edfa8715cb9c5783211011d8242edda1fb6ab.zip
test that function with wrong return types are rejected
-rw-r--r--cortex-m-rt/tests/compile-fail/default-handler-bad-signature-2.rs18
-rw-r--r--cortex-m-rt/tests/compile-fail/exception-bad-signature-2.rs18
2 files changed, 36 insertions, 0 deletions
diff --git a/cortex-m-rt/tests/compile-fail/default-handler-bad-signature-2.rs b/cortex-m-rt/tests/compile-fail/default-handler-bad-signature-2.rs
new file mode 100644
index 0000000..8fc4a7e
--- /dev/null
+++ b/cortex-m-rt/tests/compile-fail/default-handler-bad-signature-2.rs
@@ -0,0 +1,18 @@
+#![no_main]
+#![no_std]
+
+extern crate cortex_m_rt;
+extern crate panic_semihosting;
+
+use cortex_m_rt::{entry, exception};
+
+#[entry]
+fn foo() -> ! {
+ loop {}
+}
+
+#[exception] //~ ERROR custom attribute panicked
+//~^ HELP `DefaultHandler` exception must have signature `[unsafe] fn(i16) [-> !]`
+fn DefaultHandler(_irqn: i16) -> u32 {
+ 0
+}
diff --git a/cortex-m-rt/tests/compile-fail/exception-bad-signature-2.rs b/cortex-m-rt/tests/compile-fail/exception-bad-signature-2.rs
new file mode 100644
index 0000000..8504771
--- /dev/null
+++ b/cortex-m-rt/tests/compile-fail/exception-bad-signature-2.rs
@@ -0,0 +1,18 @@
+#![no_main]
+#![no_std]
+
+extern crate cortex_m_rt;
+extern crate panic_semihosting;
+
+use cortex_m_rt::{entry, exception};
+
+#[entry]
+fn foo() -> ! {
+ loop {}
+}
+
+#[exception] //~ ERROR custom attribute panicked
+//~^ HELP `#[exception]` functions other than `DefaultHandler` and `HardFault` must have signature `[unsafe] fn() [-> !]`
+fn SysTick() -> u32 {
+ 0
+}