[libcxx][test] Silence -Wself-assign diagnostics
Summary: D44883 extends -Wself-assign to also work on C++ classes. These new warnings pop up in the test suite, so they have to be silenced. Please refer to the D45082 for disscussion on whether this is the right way to solve this. Testing: `ninja check-libcxx check-libcxxabi` in stage-2 build. Reviewers: mclow.lists, EricWF Reviewed By: EricWF Subscribers: Quuxplusone, cfe-commits Differential Revision: https://reviews.llvm.org/D45128 git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@329490 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -102,7 +102,7 @@ void test_copy_assign_self() {
|
|||||||
// empty
|
// empty
|
||||||
{
|
{
|
||||||
any a;
|
any a;
|
||||||
a = a;
|
a = (any &)a;
|
||||||
assertEmpty(a);
|
assertEmpty(a);
|
||||||
assert(globalMemCounter.checkOutstandingNewEq(0));
|
assert(globalMemCounter.checkOutstandingNewEq(0));
|
||||||
}
|
}
|
||||||
@@ -112,7 +112,7 @@ void test_copy_assign_self() {
|
|||||||
any a((small(1)));
|
any a((small(1)));
|
||||||
assert(small::count == 1);
|
assert(small::count == 1);
|
||||||
|
|
||||||
a = a;
|
a = (any &)a;
|
||||||
|
|
||||||
assert(small::count == 1);
|
assert(small::count == 1);
|
||||||
assertContains<small>(a, 1);
|
assertContains<small>(a, 1);
|
||||||
@@ -125,7 +125,7 @@ void test_copy_assign_self() {
|
|||||||
any a(large(1));
|
any a(large(1));
|
||||||
assert(large::count == 1);
|
assert(large::count == 1);
|
||||||
|
|
||||||
a = a;
|
a = (any &)a;
|
||||||
|
|
||||||
assert(large::count == 1);
|
assert(large::count == 1);
|
||||||
assertContains<large>(a, 1);
|
assertContains<large>(a, 1);
|
||||||
|
|||||||
@@ -92,28 +92,28 @@ int main() {
|
|||||||
{
|
{
|
||||||
typedef std::function<int()> Func;
|
typedef std::function<int()> Func;
|
||||||
Func f = g0;
|
Func f = g0;
|
||||||
Func& fr = (f = f);
|
Func& fr = (f = (Func &)f);
|
||||||
assert(&fr == &f);
|
assert(&fr == &f);
|
||||||
assert(*f.target<int(*)()>() == g0);
|
assert(*f.target<int(*)()>() == g0);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
typedef std::function<int(int)> Func;
|
typedef std::function<int(int)> Func;
|
||||||
Func f = g;
|
Func f = g;
|
||||||
Func& fr = (f = f);
|
Func& fr = (f = (Func &)f);
|
||||||
assert(&fr == &f);
|
assert(&fr == &f);
|
||||||
assert(*f.target<int(*)(int)>() == g);
|
assert(*f.target<int(*)(int)>() == g);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
typedef std::function<int(int, int)> Func;
|
typedef std::function<int(int, int)> Func;
|
||||||
Func f = g2;
|
Func f = g2;
|
||||||
Func& fr = (f = f);
|
Func& fr = (f = (Func &)f);
|
||||||
assert(&fr == &f);
|
assert(&fr == &f);
|
||||||
assert(*f.target<int(*)(int, int)>() == g2);
|
assert(*f.target<int(*)(int, int)>() == g2);
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
typedef std::function<int(int, int, int)> Func;
|
typedef std::function<int(int, int, int)> Func;
|
||||||
Func f = g3;
|
Func f = g3;
|
||||||
Func& fr = (f = f);
|
Func& fr = (f = (Func &)f);
|
||||||
assert(&fr == &f);
|
assert(&fr == &f);
|
||||||
assert(*f.target<int(*)(int, int, int)>() == g3);
|
assert(*f.target<int(*)(int, int, int)>() == g3);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user