forked from OSchip/llvm-project
[libcxx] Do not assume the number of elements in a moved-from associative container
Reviewed as https://reviews.llvm.org/D57903. Thanks to Andrey Maksimov for the patch. llvm-svn: 353955
This commit is contained in:
parent
291713a596
commit
95601bdd29
|
@ -178,15 +178,18 @@ int main(int, char**)
|
|||
M m3(std::move(m1), A());
|
||||
assert(m3 == m2);
|
||||
LIBCPP_ASSERT(m1.empty());
|
||||
assert(Counter_base::gConstructed == num+6);
|
||||
assert(Counter_base::gConstructed >= (int)(num+6));
|
||||
assert(Counter_base::gConstructed <= (int)(num+6+m1.size()));
|
||||
|
||||
{
|
||||
M m4(std::move(m2), A(5));
|
||||
assert(Counter_base::gConstructed == num+6);
|
||||
assert(Counter_base::gConstructed >= (int)(num+6));
|
||||
assert(Counter_base::gConstructed <= (int)(num+6+m1.size()+m2.size()));
|
||||
assert(m4 == m3);
|
||||
LIBCPP_ASSERT(m2.empty());
|
||||
}
|
||||
assert(Counter_base::gConstructed == num+3);
|
||||
assert(Counter_base::gConstructed >= (int)(num+3));
|
||||
assert(Counter_base::gConstructed <= (int)(num+3+m1.size()+m2.size()));
|
||||
}
|
||||
assert(Counter_base::gConstructed == 0);
|
||||
}
|
||||
|
|
|
@ -178,15 +178,18 @@ int main(int, char**)
|
|||
M m3(std::move(m1), A());
|
||||
assert(m3 == m2);
|
||||
LIBCPP_ASSERT(m1.empty());
|
||||
assert(Counter_base::gConstructed == 3*num);
|
||||
assert(Counter_base::gConstructed >= (int)(3*num));
|
||||
assert(Counter_base::gConstructed <= (int)(4*num));
|
||||
|
||||
{
|
||||
M m4(std::move(m2), A(5));
|
||||
assert(Counter_base::gConstructed == 3*num);
|
||||
assert(Counter_base::gConstructed >= (int)(3*num));
|
||||
assert(Counter_base::gConstructed <= (int)(5*num));
|
||||
assert(m4 == m3);
|
||||
LIBCPP_ASSERT(m2.empty());
|
||||
}
|
||||
assert(Counter_base::gConstructed == 2*num);
|
||||
assert(Counter_base::gConstructed >= (int)(2*num));
|
||||
assert(Counter_base::gConstructed <= (int)(4*num));
|
||||
}
|
||||
assert(Counter_base::gConstructed == 0);
|
||||
}
|
||||
|
|
|
@ -172,15 +172,18 @@ int main(int, char**)
|
|||
M m3(std::move(m1), A());
|
||||
assert(m3 == m2);
|
||||
LIBCPP_ASSERT(m1.empty());
|
||||
assert(Counter_base::gConstructed == 3*num);
|
||||
assert(Counter_base::gConstructed >= (int)(3*num));
|
||||
assert(Counter_base::gConstructed <= (int)(4*num));
|
||||
|
||||
{
|
||||
M m4(std::move(m2), A(5));
|
||||
assert(Counter_base::gConstructed == 3*num);
|
||||
assert(Counter_base::gConstructed >= (int)(3*num));
|
||||
assert(Counter_base::gConstructed <= (int)(5*num));
|
||||
assert(m4 == m3);
|
||||
LIBCPP_ASSERT(m2.empty());
|
||||
}
|
||||
assert(Counter_base::gConstructed == 2*num);
|
||||
assert(Counter_base::gConstructed >= (int)(2*num));
|
||||
assert(Counter_base::gConstructed <= (int)(4*num));
|
||||
}
|
||||
assert(Counter_base::gConstructed == 0);
|
||||
}
|
||||
|
|
|
@ -172,15 +172,18 @@ int main(int, char**)
|
|||
M m3(std::move(m1), A());
|
||||
assert(m3 == m2);
|
||||
LIBCPP_ASSERT(m1.empty());
|
||||
assert(Counter_base::gConstructed == 6+num);
|
||||
assert(Counter_base::gConstructed >= (int)(6+num));
|
||||
assert(Counter_base::gConstructed <= (int)(m1.size()+6+num));
|
||||
|
||||
{
|
||||
M m4(std::move(m2), A(5));
|
||||
assert(Counter_base::gConstructed == 6+num);
|
||||
assert(Counter_base::gConstructed >= (int)(6+num));
|
||||
assert(Counter_base::gConstructed <= (int)(m1.size()+m2.size()+6+num));
|
||||
assert(m4 == m3);
|
||||
LIBCPP_ASSERT(m2.empty());
|
||||
}
|
||||
assert(Counter_base::gConstructed == 3+num);
|
||||
assert(Counter_base::gConstructed >= (int)(3+num));
|
||||
assert(Counter_base::gConstructed <= (int)(m1.size()+m2.size()+3+num));
|
||||
}
|
||||
assert(Counter_base::gConstructed == 0);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue