diff options
author | 2020-03-15 19:58:19 +0000 | |
---|---|---|
committer | 2020-03-15 20:01:11 +0000 | |
commit | e3d7092189b76ff31edc24b43e6d2a75c84b6358 (patch) | |
tree | 9a4fa9ff1bfa00a366f5ac13c3544aa2dc4bfe00 /src | |
parent | 539c6d00fffabaf7c3f61f2f8c1aaefa661fa500 (diff) | |
download | cortex-m-e3d7092189b76ff31edc24b43e6d2a75c84b6358.tar.gz cortex-m-e3d7092189b76ff31edc24b43e6d2a75c84b6358.tar.zst cortex-m-e3d7092189b76ff31edc24b43e6d2a75c84b6358.zip |
Mark asm::udf as divergent
Diffstat (limited to 'src')
-rw-r--r-- | src/asm.rs | 11 |
1 files changed, 8 insertions, 3 deletions
@@ -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))] |