From ef0afbb7319bbbfeb5fd8ced320cde189fa2fd50 Mon Sep 17 00:00:00 2001 From: JJenkx Date: Sat, 24 Oct 2026 19:38:53 -0400 Subject: [PATCH] test(libc): make nextafter environment coverage portable --- core/libs/prx/libc/src/Math.cpp | 1 - core/libs/tests/GuestMath.cpp | 7 ++++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/libs/prx/libc/src/Math.cpp b/core/libs/prx/libc/src/Math.cpp index 25a3629eed..5c8c898565 100644 --- a/core/libs/prx/libc/src/Math.cpp +++ b/core/libs/prx/libc/src/Math.cpp @@ -1273,7 +1273,6 @@ float APS5_VABI cbrtf_nid_postfix(float x) { return static_cast(T); } float APS5_VABI remainderf_nid_postfix(float x, float y) { return std::remainder(x, y); } -void APS5_VABI _Feraise_nid_postfix(int exceptions); float APS5_VABI nextafterf_nid_postfix(float x, float y) { const std::uint32_t ux = std::bit_cast(x); diff --git a/core/libs/tests/GuestMath.cpp b/core/libs/tests/GuestMath.cpp index d4ba49045a..0f74db2027 100644 --- a/core/libs/tests/GuestMath.cpp +++ b/core/libs/tests/GuestMath.cpp @@ -705,7 +705,12 @@ static void CheckNextafterEnvironment(T (APS5_VABI *next)(T, T), UInt sign, UInt const auto expectedFlags = daz ? item.dazFlags : item.normalFlags; Require(result == (daz ? item.dazResult : item.normalResult)); Require(flags == expectedFlags); - Require(exceptions == static_cast(expectedFlags & FE_ALL_EXCEPT)); + const int expectedExceptions = ((expectedFlags & 0x01u) ? FE_INVALID : 0) | + ((expectedFlags & 0x04u) ? FE_DIVBYZERO : 0) | + ((expectedFlags & 0x08u) ? FE_OVERFLOW : 0) | + ((expectedFlags & 0x10u) ? FE_UNDERFLOW : 0) | + ((expectedFlags & 0x20u) ? FE_INEXACT : 0); + Require(exceptions == expectedExceptions); Require(error == (daz ? item.dazError : item.normalError)); } }