aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-qt/qt5/qtbase/0018-tst_qpainter-FE_-macros-are-not-defined-for-every-pl.patch
blob: c032ec033f970fc32e3462f4c78c229c0ebd820c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
From 557aa4d5584525cca4efcf20d6a86ad3ae99e36b 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 45798cc527..de3f156cae 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -2894,19 +2894,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");
 }
@@ -2932,7 +2956,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);
@@ -2944,7 +2968,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);
 
@@ -2972,7 +2996,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);
 
@@ -2984,7 +3008,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);
 
@@ -3007,7 +3031,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);
 
@@ -3026,7 +3050,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);