diff --git a/libc/utils/FPUtil/x86_64/FEnv.h b/libc/utils/FPUtil/x86_64/FEnv.h --- a/libc/utils/FPUtil/x86_64/FEnv.h +++ b/libc/utils/FPUtil/x86_64/FEnv.h @@ -290,11 +290,12 @@ return 1; // To indicate failure } - uint16_t x87Value = bitValue << internal::X87RoundingControlBitPosition; + uint16_t x87Value = static_cast( + bitValue << internal::X87RoundingControlBitPosition); uint16_t x87Control = internal::getX87ControlWord(); - x87Control = + x87Control = static_cast( (x87Control & ~(0x3 << internal::X87RoundingControlBitPosition)) | - x87Value; + x87Value); internal::writeX87ControlWord(x87Control); uint32_t mxcsrValue = bitValue << internal::MXCSRRoundingControlBitPosition;