[PATCH] D27021: [libcxx] [test] Fix MSVC warning C4389 "signed/unsigned mismatch", part 8/12.

Stephan T. Lavavej via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 22 16:51:59 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 C4389 "signed/unsigned mismatch", part 8/12.

Add static_cast<std::size_t> when comparing distance() to size().

These replacements were performed programmatically with regex_replace():

const vector<pair<regex, string>> reg_fmt = {

  { regex(R"(assert\((\w+)\.size\(\) == std::distance\((\w+, \w+)\)\))"),
      "assert($1.size() == static_cast<std::size_t>(std::distance($2)))" },
  { regex(R"(assert\(distance\((\w+\.begin\(\), \w+\.end\(\))\) == (\w+)\.size\(\)\))"),
      "assert(static_cast<std::size_t>(distance($1)) == $2.size())" },
  { regex(R"(assert\(std::distance\((\w+\.\w*begin\(\), \w+\.\w*end\(\))\) == (\w+)\.size\(\)\))"),
      "assert(static_cast<std::size_t>(std::distance($1)) == $2.size())" },

};

Also, include <cstddef> when it wasn't already being included.


https://reviews.llvm.org/D27021

Files:
  test/std/containers/associative/map/map.access/iterator.pass.cpp
  test/std/containers/associative/multimap/iterator.pass.cpp
  test/std/containers/associative/multiset/insert_initializer_list.pass.cpp
  test/std/containers/associative/multiset/iterator.pass.cpp
  test/std/containers/associative/set/insert_initializer_list.pass.cpp
  test/std/containers/associative/set/iterator.pass.cpp
  test/std/containers/sequences/deque/deque.capacity/resize_size.pass.cpp
  test/std/containers/sequences/deque/deque.capacity/resize_size_value.pass.cpp
  test/std/containers/sequences/deque/deque.cons/assign_iter_iter.pass.cpp
  test/std/containers/sequences/deque/deque.cons/assign_size_value.pass.cpp
  test/std/containers/sequences/deque/deque.cons/iter_iter.pass.cpp
  test/std/containers/sequences/deque/deque.cons/iter_iter_alloc.pass.cpp
  test/std/containers/sequences/deque/deque.cons/size.pass.cpp
  test/std/containers/sequences/deque/deque.cons/size_value.pass.cpp
  test/std/containers/sequences/deque/deque.cons/size_value_alloc.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/emplace.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/erase_iter.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/erase_iter_iter.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/insert_iter_iter.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/insert_rvalue.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/insert_size_value.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/insert_value.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/pop_back.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/pop_front.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/push_front.pass.cpp
  test/std/containers/sequences/deque/deque.modifiers/push_front_rvalue.pass.cpp
  test/std/containers/sequences/vector.bool/construct_iter_iter.pass.cpp
  test/std/containers/sequences/vector.bool/construct_iter_iter_alloc.pass.cpp
  test/std/containers/sequences/vector/vector.cons/construct_iter_iter.pass.cpp
  test/std/containers/sequences/vector/vector.cons/construct_iter_iter_alloc.pass.cpp
  test/std/containers/unord/unord.map/iterators.pass.cpp
  test/std/containers/unord/unord.map/swap_member.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/assign_init.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/assign_move.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/init.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/init_size.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.map/unord.map.swap/swap_non_member.pass.cpp
  test/std/containers/unord/unord.multimap/iterators.pass.cpp
  test/std/containers/unord/unord.multimap/rehash.pass.cpp
  test/std/containers/unord/unord.multimap/swap_member.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_copy.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_init.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_move.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_const_iter.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_key.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.modifiers/erase_range.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_init.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.modifiers/insert_range.pass.cpp
  test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_non_member.pass.cpp
  test/std/containers/unord/unord.multiset/iterators.pass.cpp
  test/std/containers/unord/unord.multiset/swap_member.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_copy.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_init.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy_alloc.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_alloc.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_non_member.pass.cpp
  test/std/containers/unord/unord.set/iterators.pass.cpp
  test/std/containers/unord/unord.set/swap_member.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/assign_copy.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/assign_init.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/assign_move.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/copy.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/copy_alloc.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/init.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/init_size.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/move_alloc.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp
  test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp
  test/std/containers/unord/unord.set/unord.set.swap/swap_non_member.pass.cpp
  test/std/strings/basic.string/string.cons/iter_alloc.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D27021.78990.patch
Type: text/x-patch
Size: 325643 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20161123/5599b3cb/attachment-0001.bin>


More information about the cfe-commits mailing list