From e3d7092189b76ff31edc24b43e6d2a75c84b6358 Mon Sep 17 00:00:00 2001 From: Adam Greig Date: Sun, 15 Mar 2020 19:58:19 +0000 Subject: Mark asm::udf as divergent --- src/asm.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/asm.rs b/src/asm.rs index 593aeac..3fe6393 100644 --- a/src/asm.rs +++ b/src/asm.rs @@ -86,10 +86,13 @@ pub fn nop() { /// /// Can be used as a stable alternative to `core::intrinsics::abort`. #[inline] -pub fn udf() { +pub fn udf() -> ! { match () { #[cfg(all(cortex_m, feature = "inline-asm"))] - () => unsafe { asm!("udf" :::: "volatile") }, + () => unsafe { + asm!("udf" :::: "volatile"); + loop { continue } + }, #[cfg(all(cortex_m, not(feature = "inline-asm")))] () => unsafe { @@ -97,7 +100,9 @@ pub fn udf() { fn __udf(); } - __udf() + __udf(); + + loop { continue } }, #[cfg(not(cortex_m))] -- cgit v1.2.3