qfloat16: NaN is not infinite
Change-Id: I39332e0a867442d58082fffd1502b7010424f0f8 Reviewed-by: André Hartmann <aha_1980@gmx.de> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>bb10
parent
44ef95a885
commit
3d7cdb64fc
|
|
@ -61,9 +61,9 @@ static inline bool qt_is_inf(qfloat16 d) Q_DECL_NOTHROW
|
|||
bool is_inf;
|
||||
uchar *ch = (uchar *)&d;
|
||||
if (QSysInfo::ByteOrder == QSysInfo::BigEndian)
|
||||
is_inf = (ch[0] & 0x7c) == 0x7c;
|
||||
is_inf = (ch[0] & 0x7c) == 0x7c && (ch[0] & 0x02) == 0;
|
||||
else
|
||||
is_inf = (ch[1] & 0x7c) == 0x7c;
|
||||
is_inf = (ch[1] & 0x7c) == 0x7c && (ch[1] & 0x02) == 0;
|
||||
return is_inf;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -158,12 +158,14 @@ void tst_qfloat16::qNan()
|
|||
qfloat16 nan = qQNaN();
|
||||
QVERIFY(!(0. > nan));
|
||||
QVERIFY(!(0. < nan));
|
||||
QVERIFY(!qIsInf(nan));
|
||||
QVERIFY(qIsNaN(nan));
|
||||
QVERIFY(qIsNaN(nan + 1.f));
|
||||
QVERIFY(qIsNaN(-nan));
|
||||
qfloat16 inf = qInf();
|
||||
QVERIFY(inf > qfloat16(0));
|
||||
QVERIFY(-inf < qfloat16(0));
|
||||
QVERIFY(!qIsNaN(inf));
|
||||
QVERIFY(qIsInf(inf));
|
||||
QVERIFY(qIsInf(-inf));
|
||||
QVERIFY(qIsInf(2.f*inf));
|
||||
|
|
|
|||
Loading…
Reference in New Issue