mirror of
https://github.com/llvm-mirror/libcxx.git
synced 2025-10-22 16:37:40 +08:00
[libcxx] [test] D27025: Fix MSVC warning C4389 "signed/unsigned mismatch", part 12/12.
Various changes: test/std/algorithms/alg.sorting/alg.merge/inplace_merge.pass.cpp This is comparing value_type to unsigned. value_type is sometimes int and sometimes struct S (implicitly constructible from int). static_cast<value_type>(unsigned) silences the warning and doesn't do anything bad (as the values in question are small). test/std/algorithms/alg.sorting/alg.nth.element/nth_element_comp.pass.cpp This is comparing an int remote-element to size_t. The values in question are small and non-negative, so either type is fine. I think that converting int to size_t is marginally better here than the reverse. test/std/containers/sequences/deque/deque.cons/size.pass.cpp DefaultOnly::count is int (and non-negative). When comparing to unsigned, use static_cast<unsigned>. test/std/strings/basic.string/string.access/index.pass.cpp We're comparing char to '0' through '9', but formed with the type size_t. Add static_cast<char>. test/std/utilities/template.bitset/bitset.cons/ull_ctor.pass.cpp Include <cstddef> for pedantic correctness (this test was already mentioning std::size_t). "v[i] == (i & 1)" was comparing bool to size_t. Saying "v[i] == ((i & 1) != 0)" smashes the RHS to bool. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@288749 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -29,7 +29,7 @@ int main()
|
||||
const S& cs = s;
|
||||
for (S::size_type i = 0; i < cs.size(); ++i)
|
||||
{
|
||||
assert(s[i] == '0' + i);
|
||||
assert(s[i] == static_cast<char>('0' + i));
|
||||
assert(cs[i] == s[i]);
|
||||
}
|
||||
assert(cs[cs.size()] == '\0');
|
||||
@@ -43,7 +43,7 @@ int main()
|
||||
const S& cs = s;
|
||||
for (S::size_type i = 0; i < cs.size(); ++i)
|
||||
{
|
||||
assert(s[i] == '0' + i);
|
||||
assert(s[i] == static_cast<char>('0' + i));
|
||||
assert(cs[i] == s[i]);
|
||||
}
|
||||
assert(cs[cs.size()] == '\0');
|
||||
|
Reference in New Issue
Block a user