As pointed out by Jakub, the use of excess precision is most likely source
of differences.

libstdc++-v3/ChangeLog:

        * 
testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc:
        Guard test_custom invocations with __FLT_EVAL_METHOD__ macros.
        * 
testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc:
        Guard test_custom invocations with __FLT_EVAL_METHOD__ macros.
---
Jakub could you check if that fixes the issue for you?
Test are passing with -m32 on my machine, but they were also yesterday.


 .../operators/serialize2.cc                            |  9 +++++++--
 .../operators/serialize2.cc                            | 10 ++++++++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git 
a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
 
b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
index dae9f4aaf34..4d0da7b9d15 100644
--- 
a/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
+++ 
b/libstdc++-v3/testsuite/26_numerics/random/piecewise_constant_distribution/operators/serialize2.cc
@@ -3,6 +3,7 @@
 // { dg-require-cstdint "" }
 
 #include <random>
+#include <cfloat>
 #include <sstream>
 #include <testsuite_hooks.h>
 
@@ -100,10 +101,14 @@ int main()
   test_default<double>();
   test_default<long double>();
 
-#ifdef __x86_64__
+#if __FLT_EVAL_METHOD__ >= 0
+# if __FLT_EVAL_METHOD__ == 0
   test_custom<float>();
-#endif
+# endif
+# if __FLT_EVAL_METHOD__ != 2
   test_custom<double>();
+# endif
   test_custom<long double>();
+#endif
   return 0;
 }
diff --git 
a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
 
b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
index 36157dea4e0..8de37dcd5b8 100644
--- 
a/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
+++ 
b/libstdc++-v3/testsuite/26_numerics/random/piecewise_linear_distribution/operators/serialize2.cc
@@ -3,6 +3,7 @@
 // { dg-require-cstdint "" }
 
 #include <random>
+#include <cfloat>
 #include <sstream>
 #include <testsuite_hooks.h>
 
@@ -103,10 +104,15 @@ int main()
   test_default<double>();
   test_default<long double>();
 
+#if __FLT_EVAL_METHOD__ >= 0
+# if __FLT_EVAL_METHOD__ == 0
   test_custom<float>();
-#ifdef __x86_64__
+# endif
+# if __FLT_EVAL_METHOD__ != 2
   test_custom<double>();
-#endif  
+# endif
   test_custom<long double>();
+#endif
+
   return 0;
 }
-- 
2.55.0

Reply via email to