https://gcc.gnu.org/g:306f4aef140910bfc803fe9c894b12615b35aac7

commit r17-2483-g306f4aef140910bfc803fe9c894b12615b35aac7
Author: Tomasz KamiƄski <[email protected]>
Date:   Fri Jul 17 11:49:30 2026 +0200

    libstdc++: Use __FLT_EVAL_METHOD__ to enable test for piecewise 
distributions.
    
    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:
            Likewise.

Diff:
---
 .../piecewise_constant_distribution/operators/serialize2.cc      | 8 ++++++--
 .../random/piecewise_linear_distribution/operators/serialize2.cc | 9 +++++++--
 2 files changed, 13 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 dae9f4aaf34f..9d6eae9459fd 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
@@ -100,10 +100,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 36157dea4e0f..f86ed47873d4 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
@@ -103,10 +103,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;
 }

Reply via email to