STL_MSFT created this revision. STL_MSFT added reviewers: EricWF, mclow.lists.
[libcxx] [test] Avoid MSVC truncation warnings. MSVC emits "warning C4244: 'initializing': conversion from 'int' to 'short', possible loss of data" when it sees pair<Whatever, short> constructed from (whatever, 4), because int is being truncated to short within pair's constructor. (The compiler doesn't take into account the fact that 4 is a literal at the callsite; it generates this warning when the constructor is instantiated, because it might be called with a runtime-valued int that would actually truncate.) Instead of static_cast<short>, we can simply change short to int in these tests, without affecting the pair operations that they're trying to test: move assignment, convert copy construction, and convert move construction. https://reviews.llvm.org/D45016 Files: test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp Index: test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp @@ -67,7 +67,7 @@ int main() { { - typedef std::pair<std::unique_ptr<Derived>, short> P1; + typedef std::pair<std::unique_ptr<Derived>, int> P1; typedef std::pair<std::unique_ptr<Base>, long> P2; P1 p1(std::unique_ptr<Derived>(), 4); P2 p2 = std::move(p1); Index: test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp @@ -57,7 +57,7 @@ int main() { { - typedef std::pair<int, short> P1; + typedef std::pair<int, int> P1; typedef std::pair<double, long> P2; const P1 p1(3, 4); const P2 p2 = p1; @@ -154,7 +154,7 @@ } #if TEST_STD_VER > 11 { - typedef std::pair<int, short> P1; + typedef std::pair<int, int> P1; typedef std::pair<double, long> P2; constexpr P1 p1(3, 4); constexpr P2 p2 = p1; Index: test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp @@ -49,7 +49,7 @@ int main() { { - typedef std::pair<std::unique_ptr<int>, short> P; + typedef std::pair<std::unique_ptr<int>, int> P; P p1(std::unique_ptr<int>(new int(3)), 4); P p2; p2 = std::move(p1);
Index: test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp @@ -67,7 +67,7 @@ int main() { { - typedef std::pair<std::unique_ptr<Derived>, short> P1; + typedef std::pair<std::unique_ptr<Derived>, int> P1; typedef std::pair<std::unique_ptr<Base>, long> P2; P1 p1(std::unique_ptr<Derived>(), 4); P2 p2 = std::move(p1); Index: test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp @@ -57,7 +57,7 @@ int main() { { - typedef std::pair<int, short> P1; + typedef std::pair<int, int> P1; typedef std::pair<double, long> P2; const P1 p1(3, 4); const P2 p2 = p1; @@ -154,7 +154,7 @@ } #if TEST_STD_VER > 11 { - typedef std::pair<int, short> P1; + typedef std::pair<int, int> P1; typedef std::pair<double, long> P2; constexpr P1 p1(3, 4); constexpr P2 p2 = p1; Index: test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp =================================================================== --- test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp +++ test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp @@ -49,7 +49,7 @@ int main() { { - typedef std::pair<std::unique_ptr<int>, short> P; + typedef std::pair<std::unique_ptr<int>, int> P; P p1(std::unique_ptr<int>(new int(3)), 4); P p2; p2 = std::move(p1);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits