Add static_cast<short> when constructing pair<Whatever, short> from (Something, int).
Fixes D27540.
llvm-svn: 289107
typedef std::pair<double, short> P;
C c;
C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
+ R r = c.insert(e, P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, 4));
+ r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(4.5, 4));
+ r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
+ r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 5.5);
assert(r->second == 4);
typedef std::pair<double, short> P;
C c;
C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
+ R r = c.insert(e, P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(3.5, 4));
+ r = c.insert(c.end(), P(3.5, static_cast<short>(4)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(c.end(), P(4.5, 4));
+ r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
+ r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 5.5);
assert(r->second == 4);
typedef std::pair<C::iterator, bool> R;
typedef std::pair<double, short> P;
C c;
- R r = c.insert(P(3.5, 3));
+ R r = c.insert(P(3.5, static_cast<short>(3)));
assert(r.second);
assert(c.size() == 1);
assert(r.first->first == 3.5);
assert(r.first->second == 3);
- r = c.insert(P(3.5, 4));
+ r = c.insert(P(3.5, static_cast<short>(4)));
assert(!r.second);
assert(c.size() == 1);
assert(r.first->first == 3.5);
assert(r.first->second == 3);
- r = c.insert(P(4.5, 4));
+ r = c.insert(P(4.5, static_cast<short>(4)));
assert(r.second);
assert(c.size() == 2);
assert(r.first->first == 4.5);
assert(r.first->second == 4);
- r = c.insert(P(5.5, 4));
+ r = c.insert(P(5.5, static_cast<short>(4)));
assert(r.second);
assert(c.size() == 3);
assert(r.first->first == 5.5);
typedef std::pair<C::iterator, bool> R;
typedef std::pair<double, short> P;
C c;
- R r = c.insert(P(3.5, 3));
+ R r = c.insert(P(3.5, static_cast<short>(3)));
assert(r.second);
assert(c.size() == 1);
assert(r.first->first == 3.5);
assert(r.first->second == 3);
- r = c.insert(P(3.5, 4));
+ r = c.insert(P(3.5, static_cast<short>(4)));
assert(!r.second);
assert(c.size() == 1);
assert(r.first->first == 3.5);
assert(r.first->second == 3);
- r = c.insert(P(4.5, 4));
+ r = c.insert(P(4.5, static_cast<short>(4)));
assert(r.second);
assert(c.size() == 2);
assert(r.first->first == 4.5);
assert(r.first->second == 4);
- r = c.insert(P(5.5, 4));
+ r = c.insert(P(5.5, static_cast<short>(4)));
assert(r.second);
assert(c.size() == 3);
assert(r.first->first == 5.5);
typedef std::pair<double, short> P;
C c;
C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
+ R r = c.insert(e, P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(r, P(3.5, 4));
+ r = c.insert(r, P(3.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 3.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(4.5, 4));
+ r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
+ r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
assert(c.size() == 4);
assert(r->first == 5.5);
assert(r->second == 4);
typedef std::pair<double, short> P;
C c;
C::const_iterator e = c.end();
- R r = c.insert(e, P(3.5, 3));
+ R r = c.insert(e, P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(r, P(3.5, 4));
+ r = c.insert(r, P(3.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 3.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(4.5, 4));
+ r = c.insert(c.end(), P(4.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(c.end(), P(5.5, 4));
+ r = c.insert(c.end(), P(5.5, static_cast<short>(4)));
assert(c.size() == 4);
assert(r->first == 5.5);
assert(r->second == 4);
typedef C::iterator R;
typedef std::pair<double, short> P;
C c;
- R r = c.insert(P(3.5, 3));
+ R r = c.insert(P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(P(3.5, 4));
+ r = c.insert(P(3.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 3.5);
assert(r->second == 4);
- r = c.insert(P(4.5, 4));
+ r = c.insert(P(4.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(P(5.5, 4));
+ r = c.insert(P(5.5, static_cast<short>(4)));
assert(c.size() == 4);
assert(r->first == 5.5);
assert(r->second == 4);
typedef C::iterator R;
typedef std::pair<double, short> P;
C c;
- R r = c.insert(P(3.5, 3));
+ R r = c.insert(P(3.5, static_cast<short>(3)));
assert(c.size() == 1);
assert(r->first == 3.5);
assert(r->second == 3);
- r = c.insert(P(3.5, 4));
+ r = c.insert(P(3.5, static_cast<short>(4)));
assert(c.size() == 2);
assert(r->first == 3.5);
assert(r->second == 4);
- r = c.insert(P(4.5, 4));
+ r = c.insert(P(4.5, static_cast<short>(4)));
assert(c.size() == 3);
assert(r->first == 4.5);
assert(r->second == 4);
- r = c.insert(P(5.5, 4));
+ r = c.insert(P(5.5, static_cast<short>(4)));
assert(c.size() == 4);
assert(r->first == 5.5);
assert(r->second == 4);
{
{
typedef std::pair<int, short> P;
- const P p(3, 4);
+ const P p(3, static_cast<short>(4));
assert(std::get<0>(p) == 3);
assert(std::get<1>(p) == 4);
}
#if TEST_STD_VER > 11
{
typedef std::pair<int, short> P;
- constexpr P p1(3, 4);
+ constexpr P p1(3, static_cast<short>(4));
static_assert(std::get<0>(p1) == 3, "");
static_assert(std::get<1>(p1) == 4, "");
}
{
{
typedef std::pair<std::unique_ptr<int>, short> P;
- const P p(std::unique_ptr<int>(new int(3)), 4);
+ const P p(std::unique_ptr<int>(new int(3)), static_cast<short>(4));
static_assert(std::is_same<const std::unique_ptr<int>&&, decltype(std::get<0>(std::move(p)))>::value, "");
static_assert(noexcept(std::get<0>(std::move(p))), "");
const std::unique_ptr<int>&& ptr = std::get<0>(std::move(p));
#if TEST_STD_VER > 11
{
typedef std::pair<int, short> P;
- constexpr const P p1(3, 4);
+ constexpr const P p1(3, static_cast<short>(4));
static_assert(std::get<0>(std::move(p1)) == 3, "");
static_assert(std::get<1>(std::move(p1)) == 4, "");
}
{
{
typedef std::pair<int, short> P;
- P p(3, 4);
+ P p(3, static_cast<short>(4));
assert(std::get<0>(p) == 3);
assert(std::get<1>(p) == 4);
std::get<0>(p) = 5;
{
{
typedef std::pair<std::unique_ptr<int>, short> P;
- P p(std::unique_ptr<int>(new int(3)), 4);
+ P p(std::unique_ptr<int>(new int(3)), static_cast<short>(4));
std::unique_ptr<int> ptr = std::get<0>(std::move(p));
assert(*ptr == 3);
}
{
typedef std::pair<int, short> P1;
typedef std::pair<double, long> P2;
- P1 p1(3, 4);
+ P1 p1(3, static_cast<short>(4));
P2 p2;
p2 = p1;
assert(p2.first == 3);
{
typedef std::pair<std::unique_ptr<Derived>, short> P1;
typedef std::pair<std::unique_ptr<Base>, long> P2;
- P1 p1(std::unique_ptr<Derived>(), 4);
+ P1 p1(std::unique_ptr<Derived>(), static_cast<short>(4));
P2 p2;
p2 = std::move(p1);
assert(p2.first == nullptr);
{
typedef std::pair<int, short> P1;
typedef std::pair<double, long> P2;
- const P1 p1(3, 4);
+ const P1 p1(3, static_cast<short>(4));
const P2 p2 = p1;
assert(p2.first == 3);
assert(p2.second == 4);
{
{
typedef std::pair<int, short> P1;
- P1 p1(3, 4);
+ P1 p1(3, static_cast<short>(4));
P1 p2 = p1;
assert(p2.first == 3);
assert(p2.second == 4);
#if TEST_STD_VER > 11
{
typedef std::pair<int, short> P1;
- constexpr P1 p1(3, 4);
+ constexpr P1 p1(3, static_cast<short>(4));
constexpr P1 p2 = p1;
static_assert(p2.first == 3, "");
static_assert(p2.second == 4, "");
{
typedef std::pair<int, short> P1;
static_assert(std::is_move_constructible<P1>::value, "");
- P1 p1(3, 4);
+ P1 p1(3, static_cast<short>(4));
P1 p2 = std::move(p1);
assert(p2.first == 3);
assert(p2.second == 4);
{
{
typedef std::pair<int, short> P1;
- P1 p1(3, 4);
- P1 p2(5, 6);
+ P1 p1(3, static_cast<short>(4));
+ P1 p2(5, static_cast<short>(6));
p1.swap(p2);
assert(p1.first == 5);
assert(p1.second == 6);
{
{
typedef std::pair<int, short> P;
- P p1(3, 4);
- P p2(3, 4);
+ P p1(3, static_cast<short>(4));
+ P p2(3, static_cast<short>(4));
assert( (p1 == p2));
assert(!(p1 != p2));
assert(!(p1 < p2));
}
{
typedef std::pair<int, short> P;
- P p1(2, 4);
- P p2(3, 4);
+ P p1(2, static_cast<short>(4));
+ P p2(3, static_cast<short>(4));
assert(!(p1 == p2));
assert( (p1 != p2));
assert( (p1 < p2));
}
{
typedef std::pair<int, short> P;
- P p1(3, 2);
- P p2(3, 4);
+ P p1(3, static_cast<short>(2));
+ P p2(3, static_cast<short>(4));
assert(!(p1 == p2));
assert( (p1 != p2));
assert( (p1 < p2));
}
{
typedef std::pair<int, short> P;
- P p1(3, 4);
- P p2(2, 4);
+ P p1(3, static_cast<short>(4));
+ P p2(2, static_cast<short>(4));
assert(!(p1 == p2));
assert( (p1 != p2));
assert(!(p1 < p2));
}
{
typedef std::pair<int, short> P;
- P p1(3, 4);
- P p2(3, 2);
+ P p1(3, static_cast<short>(4));
+ P p2(3, static_cast<short>(2));
assert(!(p1 == p2));
assert( (p1 != p2));
assert(!(p1 < p2));
#if TEST_STD_VER > 11
{
typedef std::pair<int, short> P;
- constexpr P p1(3, 4);
- constexpr P p2(3, 2);
+ constexpr P p1(3, static_cast<short>(4));
+ constexpr P p2(3, static_cast<short>(2));
static_assert(!(p1 == p2), "");
static_assert( (p1 != p2), "");
static_assert(!(p1 < p2), "");
{
{
typedef std::pair<int, short> P1;
- P1 p1(3, 4);
- P1 p2(5, 6);
+ P1 p1(3, static_cast<short>(4));
+ P1 p2(5, static_cast<short>(6));
swap(p1, p2);
assert(p1.first == 5);
assert(p1.second == 6);