[PATCH] D27018: [libcxx] [test] Fix MSVC warning C4018 "signed/unsigned mismatch", part 5/12.

Stephan T. Lavavej via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 22 16:48:58 PST 2016


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

[libcxx] [test] Fix MSVC warning C4018 "signed/unsigned mismatch", part 5/12.

Various changes:

test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
Change M from unsigned to int. It's compared against "int x",
and we binary_search() for it within a vector<int>.

test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
Add static_cast<unsigned> when comparing int to unsigned.

test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
Change unsigned indices to int when we're being given int as a bound.


https://reviews.llvm.org/D27018

Files:
  test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
  test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
  test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
  test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp


Index: test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
===================================================================
--- test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
+++ test/std/strings/basic.string/string.cons/size_char_alloc.pass.cpp
@@ -62,7 +62,7 @@
     S s2(n, c);
     LIBCPP_ASSERT(s2.__invariants());
     assert(s2.size() == n);
-    for (unsigned i = 0; i < n; ++i)
+    for (int i = 0; i < n; ++i)
         assert(s2[i] == c);
     assert(s2.get_allocator() == A());
     assert(s2.capacity() >= s2.size());
@@ -78,7 +78,7 @@
     S s2(n, c, a);
     LIBCPP_ASSERT(s2.__invariants());
     assert(s2.size() == n);
-    for (unsigned i = 0; i < n; ++i)
+    for (int i = 0; i < n; ++i)
         assert(s2[i] == c);
     assert(s2.get_allocator() == a);
     assert(s2.capacity() >= s2.size());
Index: test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
+++ test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval_param.pass.cpp
@@ -34,7 +34,7 @@
 I(double x, unsigned a, unsigned b)
 {
     double r = 0;
-    for (int j = a; j <= a+b-1; ++j)
+    for (int j = a; static_cast<unsigned>(j) <= a+b-1; ++j)
         r += fac(a+b-1)/(fac(j) * fac(a + b - 1 - j)) * std::pow(x, j) *
              std::pow(1-x, a+b-1-j);
     return r;
Index: test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
===================================================================
--- test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
+++ test/std/numerics/rand/rand.dis/rand.dist.norm/rand.dist.norm.f/eval.pass.cpp
@@ -34,7 +34,7 @@
 I(double x, unsigned a, unsigned b)
 {
     double r = 0;
-    for (int j = a; j <= a+b-1; ++j)
+    for (int j = a; static_cast<unsigned>(j) <= a+b-1; ++j)
         r += fac(a+b-1)/(fac(j) * fac(a + b - 1 - j)) * std::pow(x, j) *
              std::pow(1-x, a+b-1-j);
     return r;
Index: test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
===================================================================
--- test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
+++ test/std/algorithms/alg.sorting/alg.binary.search/binary.search/binary_search.pass.cpp
@@ -34,7 +34,7 @@
 test()
 {
     const unsigned N = 1000;
-    const unsigned M = 10;
+    const int M = 10;
     std::vector<int> v(N);
     int x = 0;
     for (std::size_t i = 0; i < v.size(); ++i)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27018.78985.patch
Type: text/x-patch
Size: 2657 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161123/1f43db1c/attachment.bin>


More information about the cfe-commits mailing list