This is an archive of the discontinued LLVM Phabricator instance.

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

Authored by STL_MSFT on Nov 22 2016, 4:51 PM.

Details

Summary

[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.

Diff Detail

Event Timeline

STL_MSFT updated this revision to Diff 78990.Nov 22 2016, 4:51 PM
STL_MSFT retitled this revision from to [libcxx] [test] Fix MSVC warning C4389 "signed/unsigned mismatch", part 8/12..
STL_MSFT updated this object.
STL_MSFT added reviewers: EricWF, mclow.lists.
STL_MSFT added a subscriber: cfe-commits.
EricWF accepted this revision.Dec 2 2016, 11:34 PM
EricWF edited edge metadata.

LGTM.

This revision is now accepted and ready to land.Dec 2 2016, 11:34 PM
STL_MSFT closed this revision.Dec 5 2016, 5:26 PM

Thanks, r288745.