From 84aea6c091d020a37c2b452a6f56ca27b3b2c7cb Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 13 Mar 2019 18:49:04 +0100 Subject: Add qFpClassify() to mirror std::fpclassify() The rules of std don't permit us to add an overload for fpclassify(qfloat16), so we need our own equivalent that we *can* overload. Deploy it in the few places we use fpclassify(). Extended qnumeric's testing to cover qFpClassify(). Change-Id: Ie5a0a5cc24599d1571404c573d33c682b0d305a5 Reviewed-by: Thiago Macieira Reviewed-by: Paul Wicking --- src/testlib/qtestcase.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/testlib') diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp index a010ea467b..d9f8dd7805 100644 --- a/src/testlib/qtestcase.cpp +++ b/src/testlib/qtestcase.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2019 The Qt Company Ltd. ** Copyright (C) 2016 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** @@ -2522,12 +2522,12 @@ bool QTest::compare_helper(bool success, const char *failureMsg, template static bool floatingCompare(const T &t1, const T &t2) { - switch (std::fpclassify(t1)) + switch (qFpClassify(t1)) { case FP_INFINITE: - return (t1 < 0) == (t2 < 0) && std::fpclassify(t2) == FP_INFINITE; + return (t1 < 0) == (t2 < 0) && qFpClassify(t2) == FP_INFINITE; case FP_NAN: - return std::fpclassify(t2) == FP_NAN; + return qFpClassify(t2) == FP_NAN; default: return qFuzzyCompare(t1, t2); } @@ -2631,7 +2631,7 @@ static void massageExponent(char *text) template <> Q_TESTLIB_EXPORT char *QTest::toString(const TYPE &t) \ { \ char *msg = new char[128]; \ - switch (std::fpclassify(t)) { \ + switch (qFpClassify(t)) { \ case FP_INFINITE: \ qstrncpy(msg, (t < 0 ? "-inf" : "inf"), 128); \ break; \ -- cgit v1.2.3