Author: stl_msft
Date: Fri Nov 18 16:45:32 2016
New Revision: 287391

URL: http://llvm.org/viewvc/llvm-project?rev=287391&view=rev
Log:
[libcxx] [test] D26812: In random tests, use real static_asserts and silence a 
warning.

In C++11 mode and newer, use real static_asserts.
In C++03 mode, min() and max() aren't constexpr, so use plain asserts.

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.

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

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp 
(original)
+++ 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -35,8 +35,13 @@ test1()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFF), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFF));
+#endif
     where(E::block_size);
     where(E::used_block);
 }
@@ -47,8 +52,13 @@ test2()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFull), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFFFFFFull));
+#endif
     where(E::block_size);
     where(E::used_block);
 }

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp 
(original)
+++ 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.ibits/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -28,16 +28,26 @@ void
 test1()
 {
     typedef std::independent_bits_engine<std::ranlux24, 32, unsigned> E;
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFF), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFF));
+#endif
 }
 
 void
 test2()
 {
     typedef std::independent_bits_engine<std::ranlux48, 64, unsigned long 
long> E;
-    /*static_*/assert((E::min() == 0)/*, ""*/);
-    /*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFFFFFull), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFFFFFFFFFFull));
+#endif
 }
 
 int main()

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp 
(original)
+++ 
libcxx/trunk/test/std/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -33,8 +33,13 @@ test1()
 {
     typedef std::knuth_b E;
     static_assert(E::table_size == 256, "");
-    /*static_*/assert((E::min() == 1)/*, ""*/);
-    /*static_*/assert((E::max() == 2147483646)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 1), "");
+    static_assert((E::max() == 2147483646), "");
+#else
+    assert((E::min() == 1));
+    assert((E::max() == 2147483646));
+#endif
     where(E::table_size);
 }
 

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp 
(original)
+++ libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -37,8 +37,27 @@ test1()
     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))/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((LCE::min() == (c == 0u ? 1u: 0u)), "");
+#else
+    assert((LCE::min() == (c == 0u ? 1u: 0u)));
+#endif
+
+#ifdef _MSC_VER
+    #pragma warning(push)
+    #pragma warning(disable: 4310) // cast truncates constant value
+#endif // _MSC_VER
+
+#if TEST_STD_VER >= 11
+    static_assert((LCE::max() == result_type(m - 1u)), "");
+#else
+    assert((LCE::max() == result_type(m - 1u)));
+#endif
+
+#ifdef _MSC_VER
+    #pragma warning(pop)
+#endif // _MSC_VER
+
     static_assert((LCE::default_seed == 1), "");
     where(LCE::multiplier);
     where(LCE::increment);

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp 
(original)
+++ libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -60,8 +60,13 @@ test1()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFF), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFF));
+#endif
     static_assert((E::default_seed == 5489u), "");
     where(E::word_size);
     where(E::state_size);
@@ -96,8 +101,13 @@ test2()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFFFFFull), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFFFFFFFFFFull));
+#endif
     static_assert((E::default_seed == 5489u), "");
     where(E::word_size);
     where(E::state_size);

Modified: 
libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
URL: 
http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp?rev=287391&r1=287390&r2=287391&view=diff
==============================================================================
--- libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp 
(original)
+++ libcxx/trunk/test/std/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp 
Fri Nov 18 16:45:32 2016
@@ -38,8 +38,13 @@ test1()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFF), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFF));
+#endif
     static_assert((E::default_seed == 19780503u), "");
     where(E::word_size);
     where(E::short_lag);
@@ -54,8 +59,13 @@ test2()
     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)/*, ""*/);
+#if TEST_STD_VER >= 11
+    static_assert((E::min() == 0), "");
+    static_assert((E::max() == 0xFFFFFFFFFFFFull), "");
+#else
+    assert((E::min() == 0));
+    assert((E::max() == 0xFFFFFFFFFFFFull));
+#endif
     static_assert((E::default_seed == 19780503u), "");
     where(E::word_size);
     where(E::short_lag);


_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to