From 6c9e68cffb15cc1e848ca57ea12d4e5905d46507 Mon Sep 17 00:00:00 2001 
 | 
From: Nicola Lunghi <nick83ola@gmail.com> 
 | 
Date: Wed, 5 Feb 2020 15:32:25 +0000 
 | 
Subject: [PATCH] tst_qpainter: FE_ macros are not defined for every platform 
 | 
  
 | 
the FE_INEXACT, FE_UNDERFLOW, FE_OVERFLOW, FE_DIVBYZERO, FE_INVALID are defined 
 | 
only for platforms with fp engine. 
 | 
  
 | 
Signed-off-by: Nicola Lunghi <nick83ola@gmail.com> 
 | 
Upstream-Status: submitted [https://codereview.qt-project.org/c/qt/qtbase/+/289447] 
 | 
--- 
 | 
 .../gui/painting/qpainter/tst_qpainter.cpp    | 50 ++++++++++++++----- 
 | 
 1 file changed, 37 insertions(+), 13 deletions(-) 
 | 
  
 | 
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 
 | 
index 42e98ce363..0ca9b87f04 100644 
 | 
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 
 | 
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp 
 | 
@@ -2931,19 +2931,43 @@ void tst_QPainter::monoImages() 
 | 
 #if !defined(Q_OS_AIX) && !defined(Q_CC_MSVC) && !defined(Q_OS_SOLARIS) && !defined(__UCLIBC__) 
 | 
 #include <fenv.h> 
 | 
  
 | 
+#if defined(FE_INEXACT) 
 | 
+    #define QP_FE_INEXACT (FE_INEXACT) 
 | 
+#else 
 | 
+    #define QP_FE_INEXACT 0 
 | 
+#endif 
 | 
+#if defined(FE_UNDERFLOW) 
 | 
+    #define QP_FE_UNDERFLOW (FE_UNDERFLOW) 
 | 
+#else 
 | 
+    #define QP_FE_UNDERFLOW 0 
 | 
+#endif 
 | 
+#if defined(FE_OVERFLOW) 
 | 
+    #define QP_FE_OVERFLOW (FE_OVERFLOW) 
 | 
+#else 
 | 
+    #define QP_FE_OVERFLOW 0 
 | 
+#endif 
 | 
+#if defined(FE_DIVBYZERO) 
 | 
+    #define QP_FE_DIVBYZERO (FE_DIVBYZERO) 
 | 
+#else 
 | 
+    #define QP_FE_DIVBYZERO 0 
 | 
+#endif 
 | 
+#if defined(FE_INVALID) 
 | 
+    #define QP_FE_INVALID (FE_INVALID) 
 | 
+#else 
 | 
+    #define QP_FE_INVALID 0 
 | 
+#endif 
 | 
+ 
 | 
 static const QString fpeExceptionString(int exception) 
 | 
 { 
 | 
-#ifdef FE_INEXACT 
 | 
-    if (exception & FE_INEXACT) 
 | 
+    if (exception & QP_FE_INEXACT) 
 | 
         return QLatin1String("Inexact result"); 
 | 
-#endif 
 | 
-    if (exception & FE_UNDERFLOW) 
 | 
+    if (exception & QP_FE_UNDERFLOW) 
 | 
         return QLatin1String("Underflow"); 
 | 
-    if (exception & FE_OVERFLOW) 
 | 
+    if (exception & QP_FE_OVERFLOW) 
 | 
         return QLatin1String("Overflow"); 
 | 
-    if (exception & FE_DIVBYZERO) 
 | 
+    if (exception & QP_FE_DIVBYZERO) 
 | 
         return QLatin1String("Divide by zero"); 
 | 
-    if (exception & FE_INVALID) 
 | 
+    if (exception & QP_FE_INVALID) 
 | 
         return QLatin1String("Invalid operation"); 
 | 
     return QLatin1String("No exception"); 
 | 
 } 
 | 
@@ -2969,7 +2993,7 @@ private: 
 | 
  
 | 
 void fpe_rasterizeLine_task232012() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
     QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 
 | 
     img.fill(0x0); 
 | 
     QPainter p(&img); 
 | 
@@ -2981,7 +3005,7 @@ void fpe_rasterizeLine_task232012() 
 | 
  
 | 
 void fpe_pixmapTransform() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
  
 | 
     QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 
 | 
  
 | 
@@ -3009,7 +3033,7 @@ void fpe_pixmapTransform() 
 | 
  
 | 
 void fpe_zeroLengthLines() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
  
 | 
     QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 
 | 
  
 | 
@@ -3021,7 +3045,7 @@ void fpe_zeroLengthLines() 
 | 
  
 | 
 void fpe_divByZero() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
  
 | 
     QImage img(128, 128, QImage::Format_ARGB32_Premultiplied); 
 | 
  
 | 
@@ -3044,7 +3068,7 @@ void fpe_divByZero() 
 | 
  
 | 
 void fpe_steepSlopes() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
  
 | 
     QImage img(1024, 1024, QImage::Format_ARGB32_Premultiplied); 
 | 
  
 | 
@@ -3063,7 +3087,7 @@ void fpe_steepSlopes() 
 | 
  
 | 
 void fpe_radialGradients() 
 | 
 { 
 | 
-    FpExceptionChecker checker(FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID | FE_DIVBYZERO); 
 | 
+    FpExceptionChecker checker(QP_FE_UNDERFLOW | QP_FE_OVERFLOW | QP_FE_INVALID | QP_FE_DIVBYZERO); 
 | 
  
 | 
     QImage img(21, 21, QImage::Format_ARGB32_Premultiplied); 
 | 
     img.fill(0); 
 |