[PATCH] ucrtbase: Don't differentiate for 64-bit in __fpe_flt_rounds.
Sven Baars
sven.wine at gmail.com
Sat Oct 5 06:39:47 CDT 2019
The previous behavior was only present on w1064v1507, and not on
any other version of Windows (both older and newer).
Signed-off-by: Sven Baars <sven.wine at gmail.com>
---
dlls/msvcrt/math.c | 5 -----
dlls/ucrtbase/tests/misc.c | 4 ++--
2 files changed, 2 insertions(+), 7 deletions(-)
diff --git a/dlls/msvcrt/math.c b/dlls/msvcrt/math.c
index 6651df8c12..54f1853e33 100644
--- a/dlls/msvcrt/math.c
+++ b/dlls/msvcrt/math.c
@@ -1274,13 +1274,8 @@ int CDECL __fpe_flt_rounds(void)
switch(fpc) {
case MSVCRT__RC_CHOP: return 0;
case MSVCRT__RC_NEAR: return 1;
-#ifdef _WIN64
- case MSVCRT__RC_UP: return 3;
- default: return 2;
-#else
case MSVCRT__RC_UP: return 2;
default: return 3;
-#endif
}
}
#endif
diff --git a/dlls/ucrtbase/tests/misc.c b/dlls/ucrtbase/tests/misc.c
index aecbc9dca5..284c8f52ed 100644
--- a/dlls/ucrtbase/tests/misc.c
+++ b/dlls/ucrtbase/tests/misc.c
@@ -361,11 +361,11 @@ static void test___fpe_flt_rounds(void)
ok((p__controlfp(_RC_UP, _RC_CHOP) & _RC_CHOP) == _RC_UP, "_controlfp(_RC_UP, _RC_CHOP) failed\n");
ret = p___fpe_flt_rounds();
- ok(ret == 2 + (sizeof(void*)>sizeof(int)), "__fpe_flt_rounds returned %d\n", ret);
+ ok(ret == 2 || broken(ret == 3) /* w1064v1507 */, "__fpe_flt_rounds returned %d\n", ret);
ok((p__controlfp(_RC_DOWN, _RC_CHOP) & _RC_CHOP) == _RC_DOWN, "_controlfp(_RC_DOWN, _RC_CHOP) failed\n");
ret = p___fpe_flt_rounds();
- ok(ret == 3 - (sizeof(void*)>sizeof(int)), "__fpe_flt_rounds returned %d\n", ret);
+ ok(ret == 3 || broken(ret == 2) /* w1064v1507 */, "__fpe_flt_rounds returned %d\n", ret);
ok((p__controlfp(_RC_CHOP, _RC_CHOP) & _RC_CHOP) == _RC_CHOP, "_controlfp(_RC_CHOP, _RC_CHOP) failed\n");
ret = p___fpe_flt_rounds();
--
2.17.1
More information about the wine-devel
mailing list