Zhang Xiongpang:  Add definitions for const data members.  Fixes http://llvm.org/bugs/show_bug.cgi?id=14585.

llvm-svn: 170026
diff --git a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
index 9a75b0b..53e4c29 100644
--- a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.disc/values.pass.cpp
@@ -26,6 +26,9 @@
 #include <type_traits>
 #include <cassert>
 
+template <class _Tp>
+void where(const _Tp &) {}
+
 void
 test1()
 {
@@ -34,6 +37,8 @@
     static_assert((E::used_block == 23), "");
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
+    where(E::block_size);
+    where(E::used_block);
 }
 
 void
@@ -44,6 +49,8 @@
     static_assert((E::used_block == 11), "");
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
+    where(E::block_size);
+    where(E::used_block);
 }
 
 int main()
diff --git a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
index 0eb3b68..eb42d64 100644
--- a/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.adapt/rand.adapt.shuf/values.pass.cpp
@@ -25,6 +25,9 @@
 #include <type_traits>
 #include <cassert>
 
+template <class _Tp>
+void where(const _Tp &) {}
+
 void
 test1()
 {
@@ -32,6 +35,7 @@
     static_assert(E::table_size == 256, "");
     /*static_*/assert((E::min() == 1)/*, ""*/);
     /*static_*/assert((E::max() == 2147483646)/*, ""*/);
+    where(E::table_size);
 }
 
 int main()
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
index 978eecc..857a478 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.lcong/values.pass.cpp
@@ -25,6 +25,9 @@
 #include <type_traits>
 #include <cassert>
 
+template <class _Tp>
+void where(const _Tp &) {}
+
 template <class T, T a, T c, T m>
 void
 test1()
@@ -37,6 +40,10 @@
     /*static_*/assert((LCE::min() == (c == 0u ? 1u: 0u))/*, ""*/);
     /*static_*/assert((LCE::max() == result_type(m - 1u))/*, ""*/);
     static_assert((LCE::default_seed == 1), "");
+    where(LCE::multiplier);
+    where(LCE::increment);
+    where(LCE::modulus);
+    where(LCE::default_seed);
 }
 
 template <class T>
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
index 558d0e7..331d3c5 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.mers/values.pass.cpp
@@ -40,6 +40,9 @@
 #include <type_traits>
 #include <cassert>
 
+template <class _Tp>
+void where(const _Tp &) {}
+
 void
 test1()
 {
@@ -60,6 +63,20 @@
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFFFF)/*, ""*/);
     static_assert((E::default_seed == 5489u), "");
+    where(E::word_size);
+    where(E::state_size);
+    where(E::shift_size);
+    where(E::mask_bits);
+    where(E::xor_mask);
+    where(E::tempering_u);
+    where(E::tempering_d);
+    where(E::tempering_s);
+    where(E::tempering_b);
+    where(E::tempering_t);
+    where(E::tempering_c);
+    where(E::tempering_l);
+    where(E::initialization_multiplier);
+    where(E::default_seed);
 }
 
 void
@@ -82,6 +99,20 @@
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFFFFFFFFFFFFull)/*, ""*/);
     static_assert((E::default_seed == 5489u), "");
+    where(E::word_size);
+    where(E::state_size);
+    where(E::shift_size);
+    where(E::mask_bits);
+    where(E::xor_mask);
+    where(E::tempering_u);
+    where(E::tempering_d);
+    where(E::tempering_s);
+    where(E::tempering_b);
+    where(E::tempering_t);
+    where(E::tempering_c);
+    where(E::tempering_l);
+    where(E::initialization_multiplier);
+    where(E::default_seed);
 }
 
 int main()
diff --git a/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp b/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
index 84342a2..75716a4 100644
--- a/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
+++ b/libcxx/test/numerics/rand/rand.eng/rand.eng.sub/values.pass.cpp
@@ -28,6 +28,9 @@
 #include <type_traits>
 #include <cassert>
 
+template <class _Tp>
+void where(const _Tp &) {}
+
 void
 test1()
 {
@@ -38,6 +41,10 @@
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFF)/*, ""*/);
     static_assert((E::default_seed == 19780503u), "");
+    where(E::word_size);
+    where(E::short_lag);
+    where(E::long_lag);
+    where(E::default_seed);
 }
 
 void
@@ -50,6 +57,10 @@
     /*static_*/assert((E::min() == 0)/*, ""*/);
     /*static_*/assert((E::max() == 0xFFFFFFFFFFFFull)/*, ""*/);
     static_assert((E::default_seed == 19780503u), "");
+    where(E::word_size);
+    where(E::short_lag);
+    where(E::long_lag);
+    where(E::default_seed);
 }
 
 int main()