STL_MSFT created this revision.
STL_MSFT added reviewers: EricWF, mclow.lists.
STL_MSFT added a subscriber: cfe-commits.

[libcxx] [test] In random tests, use real static_asserts and silence a warning.

One test triggers MSVC's warning C4310 "cast truncates constant value".
The code is valid, and yet the warning is valid, so I'm silencing it
through push-disable-pop.


https://reviews.llvm.org/D26812

Files:
  test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
  test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp
  test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
  test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
  test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
  test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp

Index: test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
+++ test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
@@ -38,8 +38,8 @@
     static_assert((E::word_size == 24), "");
     static_assert((E::short_lag == 10), "");
     static_assert((E::long_lag == 24), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFF), "");
     static_assert((E::default_seed == 19780503u), "");
     where(E::word_size);
     where(E::short_lag);
@@ -54,8 +54,8 @@
     static_assert((E::word_size == 48), "");
     static_assert((E::short_lag == 5), "");
     static_assert((E::long_lag == 12), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFull), "");
     static_assert((E::default_seed == 19780503u), "");
     where(E::word_size);
     where(E::short_lag);
Index: test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
+++ test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
@@ -60,8 +60,8 @@
     static_assert((E::tempering_c == 0xefc60000), "");
     static_assert((E::tempering_l == 18), "");
     static_assert((E::initialization_multiplier == 1812433253), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFF), "");
     static_assert((E::default_seed == 5489u), "");
     where(E::word_size);
     where(E::state_size);
@@ -96,8 +96,8 @@
     static_assert((E::tempering_c == 0xfff7eee000000000ull), "");
     static_assert((E::tempering_l == 43), "");
     static_assert((E::initialization_multiplier == 6364136223846793005ull), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFFFFFull), "");
     static_assert((E::default_seed == 5489u), "");
     where(E::word_size);
     where(E::state_size);
Index: test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
+++ test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
@@ -37,8 +37,19 @@
     static_assert((LCE::multiplier == a), "");
     static_assert((LCE::increment == c), "");
     static_assert((LCE::modulus == m), "");
-    /*static_*/assert((LCE::min() == (c == 0u ? 1u: 0u))/*, ""*/);
-    /*static_*/assert((LCE::max() == result_type(m - 1u))/*, ""*/);
+    static_assert((LCE::min() == (c == 0u ? 1u: 0u)), "");
+
+#ifdef _MSC_VER
+    #pragma warning(push)
+    #pragma warning(disable: 4310) // cast truncates constant value
+#endif // _MSC_VER
+
+    static_assert((LCE::max() == result_type(m - 1u)), "");
+
+#ifdef _MSC_VER
+    #pragma warning(pop)
+#endif // _MSC_VER
+
     static_assert((LCE::default_seed == 1), "");
     where(LCE::multiplier);
     where(LCE::increment);
Index: test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
+++ test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
@@ -33,8 +33,8 @@
 {
     typedef std::knuth_b E;
     static_assert(E::table_size == 256, "");
-    /*static_*/assert((E::min() == 1)/*, ""*/);
-    /*static_*/assert((E::max() == 2147483646)/*, ""*/);
+    static_assert((E::min() == 1), "");
+    static_assert((E::max() == 2147483646), "");
     where(E::table_size);
 }
 
Index: test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp
+++ test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp
@@ -28,16 +28,16 @@
 test1()
 {
     typedef std::independent_bits_engine<std::ranlux24, 32, unsigned> E;
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFF), "");
 }
 
 void
 test2()
 {
     typedef std::independent_bits_engine<std::ranlux48, 64, unsigned long long> E;
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFFFFFull), "");
 }
 
 int main()
Index: test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
+++ test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
@@ -35,8 +35,8 @@
     typedef std::ranlux24 E;
     static_assert((E::block_size == 223), "");
     static_assert((E::used_block == 23), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFF), "");
     where(E::block_size);
     where(E::used_block);
 }
@@ -47,8 +47,8 @@
     typedef std::ranlux48 E;
     static_assert((E::block_size == 389), "");
     static_assert((E::used_block == 11), "");
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFull), "");
     where(E::block_size);
     where(E::used_block);
 }
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to