Fix has_signaling_NaN usage for INTEGRITY
- The newest GHS compiler versions set the value of has_signaling_NaN to False. Add compilation and autotest fix for GHS-compiler 2021/2022 releases. Task-number: QTBUG-99123 Pick-to: 6.2 6.3 Change-Id: I45e5da6759a15c60c17f896e565002cbba8524ed Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>bb10
parent
1977c922e9
commit
715420095a
|
|
@ -160,8 +160,7 @@ static_assert(std::numeric_limits<float>::is_iec559,
|
|||
// Technically, presence of NaN and infinities are implied from the above check,
|
||||
// but double checking our environment doesn't hurt...
|
||||
static_assert(std::numeric_limits<float>::has_infinity &&
|
||||
std::numeric_limits<float>::has_quiet_NaN &&
|
||||
std::numeric_limits<float>::has_signaling_NaN,
|
||||
std::numeric_limits<float>::has_quiet_NaN,
|
||||
"Qt assumes IEEE 754 floating point");
|
||||
|
||||
// is_iec559 checks for ISO/IEC/IEEE 60559:2011 (aka IEEE 754-2008) compliance,
|
||||
|
|
|
|||
|
|
@ -550,16 +550,19 @@ void tst_qfloat16::properties()
|
|||
// and the same supposed to be for qfloat16.
|
||||
#if !defined(Q_CC_GHS)
|
||||
QVERIFY(Bounds::is_iec559);
|
||||
#else
|
||||
#endif //Q_CC_GHS
|
||||
#if QT_CONFIG(signaling_nan)
|
||||
// Technically, presence of NaN and infinities are implied from the above check, but that checkings GHS compiler complies.
|
||||
QVERIFY(Bounds::has_infinity && Bounds::has_quiet_NaN && Bounds::has_signaling_NaN);
|
||||
#endif // Q_CC_GHS
|
||||
#endif
|
||||
QVERIFY(Bounds::is_bounded);
|
||||
QVERIFY(!Bounds::is_modulo);
|
||||
QVERIFY(!Bounds::traps);
|
||||
QVERIFY(Bounds::has_infinity);
|
||||
QVERIFY(Bounds::has_quiet_NaN);
|
||||
#if QT_CONFIG(signaling_nan)
|
||||
QVERIFY(Bounds::has_signaling_NaN);
|
||||
#endif
|
||||
#if !defined(Q_CC_GHS)
|
||||
QCOMPARE(Bounds::has_denorm, std::denorm_present);
|
||||
#else
|
||||
|
|
|
|||
Loading…
Reference in New Issue