[libcxx-commits] [PATCH] D118235: [libcxx] [test] Clarify a MinGW test failure waiver in rand.dist.uni.int/eval.pass.cpp

Martin Storsjö via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Wed Jan 26 12:42:28 PST 2022


mstorsjo updated this revision to Diff 403376.
mstorsjo marked an inline comment as done.
mstorsjo added a comment.

Use a conditional ifdef to narrow down the workaround as suggested.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D118235/new/

https://reviews.llvm.org/D118235

Files:
  libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp


Index: libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp
===================================================================
--- libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp
+++ libcxx/test/std/numerics/rand/rand.dis/rand.dist.uni/rand.dist.uni.int/eval.pass.cpp
@@ -7,9 +7,6 @@
 //===----------------------------------------------------------------------===//
 //
 // REQUIRES: long_tests
-//
-// This fails on MinGW for some unknown reason.
-// UNSUPPORTED: target={{.+}}-windows-gnu
 
 // <random>
 
@@ -28,6 +25,12 @@
 
 #include "test_macros.h"
 
+// The __int128 conversions to/from floating point crash on MinGW on x86_64.
+// This is fixed in Clang 14 by https://reviews.llvm.org/D110413.
+#if defined(__x86_64__) && defined(__MINGW32__) && defined(__clang_major__) && __clang_major__ < 14
+ #define TEST_BUGGY_I128_FP
+#endif
+
 template <class T>
 T sqr(T x)
 {
@@ -130,7 +133,7 @@
     // or unsigned long long.
     // (We support __int128 as an extension.)
 
-#ifndef _LIBCPP_HAS_NO_INT128
+#if !defined(_LIBCPP_HAS_NO_INT128) && !defined(TEST_BUGGY_I128_FP)
     test_statistics<__int128_t, std::minstd_rand0>();
     test_statistics<__uint128_t, std::minstd_rand0>();
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D118235.403376.patch
Type: text/x-patch
Size: 1260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220126/2f5c21bf/attachment.bin>


More information about the libcxx-commits mailing list