From e7295c959b73cec09e36d3703d5619e8e7aa5fb1 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Fri, 16 Dec 2016 12:56:23 -0800 Subject: Add -Wfloat-equal to Qt's header clean check Task-number: QTBUG-57649 Change-Id: I15b62e0f9cec482fbb40fffd1490d802c54bf0fe Reviewed-by: Marc Mutz Reviewed-by: Lars Knoll --- src/corelib/tools/qrect.h | 6 ++++++ src/gui/math3d/qmatrix4x4.h | 5 +++++ src/gui/math3d/qquaternion.h | 15 +++++++++------ src/gui/math3d/qvector2d.h | 4 ++++ src/gui/math3d/qvector3d.h | 4 ++++ src/gui/math3d/qvector4d.h | 4 ++++ src/gui/painting/qtransform.h | 6 ++++++ 7 files changed, 38 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/corelib/tools/qrect.h b/src/corelib/tools/qrect.h index f973cf3494..4030cccbd5 100644 --- a/src/corelib/tools/qrect.h +++ b/src/corelib/tools/qrect.h @@ -662,12 +662,18 @@ Q_DECL_CONSTEXPR inline QRectF::QRectF(const QRect &r) Q_DECL_NOTHROW { } +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") + Q_DECL_CONSTEXPR inline bool QRectF::isNull() const Q_DECL_NOTHROW { return w == 0. && h == 0.; } Q_DECL_CONSTEXPR inline bool QRectF::isEmpty() const Q_DECL_NOTHROW { return w <= 0. || h <= 0.; } +QT_WARNING_POP + Q_DECL_CONSTEXPR inline bool QRectF::isValid() const Q_DECL_NOTHROW { return w > 0. && h > 0.; } diff --git a/src/gui/math3d/qmatrix4x4.h b/src/gui/math3d/qmatrix4x4.h index e143884f9d..aca685920e 100644 --- a/src/gui/math3d/qmatrix4x4.h +++ b/src/gui/math3d/qmatrix4x4.h @@ -212,6 +212,9 @@ private: friend class QGraphicsRotation; }; +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") Q_DECLARE_TYPEINFO(QMatrix4x4, Q_MOVABLE_TYPE); inline QMatrix4x4::QMatrix4x4 @@ -1093,6 +1096,8 @@ inline void QMatrix4x4::viewport(const QRectF &rect) viewport(rect.x(), rect.y(), rect.width(), rect.height()); } +QT_WARNING_POP + #ifndef QT_NO_DEBUG_STREAM Q_GUI_EXPORT QDebug operator<<(QDebug dbg, const QMatrix4x4 &m); #endif diff --git a/src/gui/math3d/qquaternion.h b/src/gui/math3d/qquaternion.h index 808e0ee6d7..eff427117f 100644 --- a/src/gui/math3d/qquaternion.h +++ b/src/gui/math3d/qquaternion.h @@ -168,7 +168,9 @@ inline QQuaternion::QQuaternion() : wp(1.0f), xp(0.0f), yp(0.0f), zp(0.0f) {} inline QQuaternion::QQuaternion(float aScalar, float xpos, float ypos, float zpos) : wp(aScalar), xp(xpos), yp(ypos), zp(zpos) {} - +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") inline bool QQuaternion::isNull() const { return wp == 0.0f && xp == 0.0f && yp == 0.0f && zp == 0.0f; @@ -179,6 +181,12 @@ inline bool QQuaternion::isIdentity() const return wp == 1.0f && xp == 0.0f && yp == 0.0f && zp == 0.0f; } +inline bool operator==(const QQuaternion &q1, const QQuaternion &q2) +{ + return q1.wp == q2.wp && q1.xp == q2.xp && q1.yp == q2.yp && q1.zp == q2.zp; +} +QT_WARNING_POP + inline float QQuaternion::x() const { return xp; } inline float QQuaternion::y() const { return yp; } inline float QQuaternion::z() const { return zp; } @@ -277,11 +285,6 @@ inline QQuaternion &QQuaternion::operator/=(float divisor) return *this; } -inline bool operator==(const QQuaternion &q1, const QQuaternion &q2) -{ - return q1.wp == q2.wp && q1.xp == q2.xp && q1.yp == q2.yp && q1.zp == q2.zp; -} - inline bool operator!=(const QQuaternion &q1, const QQuaternion &q2) { return !operator==(q1, q2); diff --git a/src/gui/math3d/qvector2d.h b/src/gui/math3d/qvector2d.h index d2724c9498..bdb56c9c1f 100644 --- a/src/gui/math3d/qvector2d.h +++ b/src/gui/math3d/qvector2d.h @@ -204,6 +204,9 @@ inline QVector2D &QVector2D::operator/=(const QVector2D &vector) return *this; } +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") Q_DECL_CONSTEXPR inline bool operator==(const QVector2D &v1, const QVector2D &v2) { return v1.xp == v2.xp && v1.yp == v2.yp; @@ -213,6 +216,7 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QVector2D &v1, const QVector2D &v2 { return v1.xp != v2.xp || v1.yp != v2.yp; } +QT_WARNING_POP Q_DECL_CONSTEXPR inline const QVector2D operator+(const QVector2D &v1, const QVector2D &v2) { diff --git a/src/gui/math3d/qvector3d.h b/src/gui/math3d/qvector3d.h index c1d881a735..a728fd76bf 100644 --- a/src/gui/math3d/qvector3d.h +++ b/src/gui/math3d/qvector3d.h @@ -229,6 +229,9 @@ inline QVector3D &QVector3D::operator/=(const QVector3D &vector) return *this; } +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") Q_DECL_CONSTEXPR inline bool operator==(const QVector3D &v1, const QVector3D &v2) { return v1.xp == v2.xp && v1.yp == v2.yp && v1.zp == v2.zp; @@ -238,6 +241,7 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QVector3D &v1, const QVector3D &v2 { return v1.xp != v2.xp || v1.yp != v2.yp || v1.zp != v2.zp; } +QT_WARNING_POP Q_DECL_CONSTEXPR inline const QVector3D operator+(const QVector3D &v1, const QVector3D &v2) { diff --git a/src/gui/math3d/qvector4d.h b/src/gui/math3d/qvector4d.h index 9387e8d187..f63b2f141b 100644 --- a/src/gui/math3d/qvector4d.h +++ b/src/gui/math3d/qvector4d.h @@ -229,6 +229,9 @@ inline QVector4D &QVector4D::operator/=(const QVector4D &vector) return *this; } +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") Q_DECL_CONSTEXPR inline bool operator==(const QVector4D &v1, const QVector4D &v2) { return v1.xp == v2.xp && v1.yp == v2.yp && v1.zp == v2.zp && v1.wp == v2.wp; @@ -238,6 +241,7 @@ Q_DECL_CONSTEXPR inline bool operator!=(const QVector4D &v1, const QVector4D &v2 { return v1.xp != v2.xp || v1.yp != v2.yp || v1.zp != v2.zp || v1.wp != v2.wp; } +QT_WARNING_POP Q_DECL_CONSTEXPR inline const QVector4D operator+(const QVector4D &v1, const QVector4D &v2) { diff --git a/src/gui/painting/qtransform.h b/src/gui/painting/qtransform.h index 2aea19eca0..5ca1d46982 100644 --- a/src/gui/painting/qtransform.h +++ b/src/gui/painting/qtransform.h @@ -291,6 +291,10 @@ inline qreal QTransform::dy() const return affine._dy; } +QT_WARNING_PUSH +QT_WARNING_DISABLE_CLANG("-Wfloat-equal") +QT_WARNING_DISABLE_GCC("-Wfloat-equal") + inline QTransform &QTransform::operator*=(qreal num) { if (num == 1.) @@ -348,6 +352,8 @@ inline QTransform &QTransform::operator-=(qreal num) return *this; } +QT_WARNING_POP + inline bool qFuzzyCompare(const QTransform& t1, const QTransform& t2) { return qFuzzyCompare(t1.m11(), t2.m11()) -- cgit v1.2.3