relibc: fix feupdateenv unsafe fn calls (Rust 2024 edition)

This commit is contained in:
Red Bear OS
2026-07-10 08:53:34 +03:00
parent c7764197c9
commit 23db8a6b0d
+1 -1
View File
@@ -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 }