Module: wine Branch: master Commit: dbda71f74d10325a78288fd418d1990e5046a044 URL: https://source.winehq.org/git/wine.git/?a=commit;h=dbda71f74d10325a78288fd41...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Nov 16 15:04:00 2020 +0100
msvcrt: Reimplement _chgsign().
Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msvcrt/math.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c index 6ed8a50330d..8e8324b8fbe 100644 --- a/dlls/msvcrt/math.c +++ b/dlls/msvcrt/math.c @@ -170,8 +170,9 @@ int CDECL MSVCRT__set_FMA3_enable(int flag) */ float CDECL MSVCRT__chgsignf( float num ) { - /* FIXME: +-infinity,Nan not tested */ - return -num; + union { float f; UINT32 i; } u = { num }; + u.i ^= 0x80000000; + return u.f; }
/********************************************************************* @@ -1786,8 +1787,9 @@ double CDECL MSVCRT__cabs(struct MSVCRT__complex num) */ double CDECL MSVCRT__chgsign(double num) { - /* FIXME: +-infinity,Nan not tested */ - return -num; + union { double f; UINT64 i; } u = { num }; + u.i ^= 1ull << 63; + return u.f; }
/*********************************************************************