diff --git a/src/stdlib/src/lib.rs b/src/stdlib/src/lib.rs
index 91ddb0723d6b9dfff0a167ba4b202ba7362d5798..5beef27eea9262f84210d586249cfc9717d492dc 100644
--- a/src/stdlib/src/lib.rs
+++ b/src/stdlib/src/lib.rs
@@ -116,8 +116,7 @@ pub unsafe extern "C" fn exit(status: c_int) {
     use core::mem;
 
     for i in (0..ATEXIT_FUNCS.len()).rev() {
-        if ATEXIT_FUNCS[i] != None {
-            let func = mem::transmute::<usize, extern "C" fn()>(ATEXIT_FUNCS[i].unwrap());
+        if let Some(func) = ATEXIT_FUNCS[i] {
             (func)();
         }
     }