summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan T. Lavavej <stl@exchange.microsoft.com>2018-04-12 23:56:07 +0000
committerStephan T. Lavavej <stl@exchange.microsoft.com>2018-04-12 23:56:07 +0000
commit0f66190aefa0c53648d549738a2bb312a309c2d9 (patch)
treeba28a5d5102d812710c0dccc6844a90a6b284dd1
parent0c8ee891a75dfdc1c3420e36389d6ea7c680d1fb (diff)
downloadbcm5719-llvm-0f66190aefa0c53648d549738a2bb312a309c2d9.tar.gz
bcm5719-llvm-0f66190aefa0c53648d549738a2bb312a309c2d9.zip
[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. Fixes D45016. llvm-svn: 329973
-rw-r--r--libcxx/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp2
-rw-r--r--libcxx/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp4
-rw-r--r--libcxx/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp2
3 files changed, 4 insertions, 4 deletions
diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp
index 38089200e4d..f02e24b2414 100644
--- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp
+++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/assign_rv_pair.pass.cpp
@@ -49,7 +49,7 @@ int CountAssign::moved = 0;
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);
diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp
index 715b6553776..d2cb6b10984 100644
--- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp
+++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/const_pair_U_V.pass.cpp
@@ -57,7 +57,7 @@ struct ImplicitT {
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 @@ int main()
}
#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;
diff --git a/libcxx/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp b/libcxx/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp
index f5d3bb621de..7e40bed2182 100644
--- a/libcxx/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp
+++ b/libcxx/test/std/utilities/utility/pairs/pairs.pair/rv_pair_U_V.pass.cpp
@@ -67,7 +67,7 @@ struct ImplicitT {
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);
OpenPOWER on IntegriCloud