[gcc r17-2483] libstdc++: Use __FLT_EVAL_METHOD__ to enable test for piecewise distributions.

Tomasz Kaminski via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
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;
 }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.