From 23db8a6b0d465ab35e9e1df06c70ab3bf9622d39 Mon Sep 17 00:00:00 2001 From: Red Bear OS Date: Fri, 10 Jul 2026 08:53:34 +0300 Subject: [PATCH] relibc: fix feupdateenv unsafe fn calls (Rust 2024 edition) --- src/header/_fenv/mod.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/header/_fenv/mod.rs b/src/header/_fenv/mod.rs index e404db893b..fe0cc54161 100644 --- a/src/header/_fenv/mod.rs +++ b/src/header/_fenv/mod.rs @@ -33,4 +33,4 @@ pub struct fenv_t { pub mxcsr: u32, pub x87_cw: u16, pub x87_sw: u16, _pad: [u64 #[unsafe(no_mangle)] pub unsafe extern "C" fn fesetexceptflag(fp: *const fexcept_t, e: c_int) -> c_int { if fp.is_null(){return -1} let f=unsafe{*fp as u32&0x3F};let m=e as u32&0x3F;mxcsr_wr((mxcsr_rd()&!m)|(f&m));0 } #[unsafe(no_mangle)] pub unsafe extern "C" fn fesetround(r: c_int) -> c_int { if r!=FE_TONEAREST&&r!=FE_DOWNWARD&&r!=FE_UPWARD&&r!=FE_TOWARDZERO{return -1} mxcsr_wr((mxcsr_rd()&!0x6000)|((r as u32)&0x6000));cw_wr((cw_rd()&!0x0C00)|(((r as u16)>>6)&0x0C00));0 } #[unsafe(no_mangle)] pub unsafe extern "C" fn fetestexcept(e: c_int) -> c_int { ((mxcsr_rd()|sw_rd() as u32)&e as u32)as c_int } -#[unsafe(no_mangle)] pub unsafe extern "C" fn feupdateenv(ep: *const fenv_t) -> c_int { if ep.is_null(){return -1} let c=fetestexcept(FE_ALL_EXCEPT);fesetenv(ep);feraiseexcept(c);0 } +#[unsafe(no_mangle)] pub unsafe extern "C" fn feupdateenv(ep: *const fenv_t) -> c_int { if ep.is_null(){return -1} let c=unsafe{fetestexcept(FE_ALL_EXCEPT)};unsafe{fesetenv(ep)};unsafe{feraiseexcept(c)};0 }