ucrtbase: Don't differentiate for 64-bit in __fpe_flt_rounds.

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@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
stable
Sven Baars 2019-10-05 13:39:47 +02:00 committed by Alexandre Julliard
parent 8e1435ef81
commit f6ec5d1819
2 changed files with 2 additions and 7 deletions

View File

@ -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

View File

@ -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();