1From be12f3c3a5240b8bbb6837a3b23d36b61303b455 Mon Sep 17 00:00:00 2001 2From: Nicola Lunghi <nick83ola@gmail.com> 3Date: Wed, 5 Feb 2020 15:32:25 +0000 4Subject: [PATCH] tst_qpainter: FE_ macros are not defined for every platform 5 6the FE_INEXACT, FE_UNDERFLOW, FE_OVERFLOW, FE_DIVBYZERO, FE_INVALID are defined 7only for platforms with fp engine. 8 9Signed-off-by: Nicola Lunghi <nick83ola@gmail.com> 10Upstream-Status: submitted [https://codereview.qt-project.org/c/qt/qtbase/+/289447] 11--- 12 .../gui/painting/qpainter/tst_qpainter.cpp | 50 ++++++++++++++----- 13 1 file changed, 37 insertions(+), 13 deletions(-) 14 15diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 16index 42e98ce363..0ca9b87f04 100644 17--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 18+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 19@@ -2931,19 +2931,43 @@ void tst_QPainter::monoImages() 20 #if !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__) 21 #include <fenv.h> 22 23+#if defined(FE_INEXACT) 24+ #define QP_FE_INEXACT (FE_INEXACT) 25+#else 26+ #define QP_FE_INEXACT 0 27+#endif 28+#if defined(FE_UNDERFLOW) 29+ #define QP_FE_UNDERFLOW (FE_UNDERFLOW) 30+#else 31+ #define QP_FE_UNDERFLOW 0 32+#endif 33+#if defined(FE_OVERFLOW) 34+ #define QP_FE_OVERFLOW (FE_OVERFLOW) 35+#else 36+ #define QP_FE_OVERFLOW 0 37+#endif 38+#if defined(FE_DIVBYZERO) 39+ #define QP_FE_DIVBYZERO (FE_DIVBYZERO) 40+#else 41+ #define QP_FE_DIVBYZERO 0 42+#endif 43+#if defined(FE_INVALID) 44+ #define QP_FE_INVALID (FE_INVALID) 45+#else 46+ #define QP_FE_INVALID 0 47+#endif 48+ 49 static const QString fpeExceptionString(int exception) 50 { 51-#ifdef FE_INEXACT 52- if (exception & FE_INEXACT) 53+ if (exception & QP_FE_INEXACT) 54 return QLatin1String("Inexact result"); 55-#endif 56- if (exception & FE_UNDERFLOW) 57+ if (exception & QP_FE_UNDERFLOW) 58 return QLatin1String("Underflow"); 59- if (exception & FE_OVERFLOW) 60+ if (exception & QP_FE_OVERFLOW) 61 return QLatin1String("Overflow"); 62- if (exception & FE_DIVBYZERO) 63+ if (exception & QP_FE_DIVBYZERO) 64 return QLatin1String("Divide by zero"); 65- if (exception & FE_INVALID) 66+ if (exception & QP_FE_INVALID) 67 return QLatin1String("Invalid operation"); 68 return QLatin1String("No exception"); 69 } 70@@ -2969,7 +2993,7 @@ private: 71 72 void fpe_rasterizeLine_task232012() 73 { 74- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 75+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 76 QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 77 img.fill(0x0); 78 QPainter p(&img); 79@@ -2981,7 +3005,7 @@ void fpe_rasterizeLine_task232012() 80 81 void fpe_pixmapTransform() 82 { 83- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 84+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 85 86 QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 87 88@@ -3009,7 +3033,7 @@ void fpe_pixmapTransform() 89 90 void fpe_zeroLengthLines() 91 { 92- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 93+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 94 95 QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 96 97@@ -3021,7 +3045,7 @@ void fpe_zeroLengthLines() 98 99 void fpe_divByZero() 100 { 101- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 102+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 103 104 QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 105 106@@ -3044,7 +3068,7 @@ void fpe_divByZero() 107 108 void fpe_steepSlopes() 109 { 110- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 111+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 112 113 QImage img(1024, 1024, QImage::Format_ARGB32_Premultiplied); 114 115@@ -3063,7 +3087,7 @@ void fpe_steepSlopes() 116 117 void fpe_radialGradients() 118 { 119- FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 120+ FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 121 122 QImage img(21, 21, QImage::Format_ARGB32_Premultiplied); 123 img.fill(0); 124