[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
diff --git a/test/std/utilities/any/any.class/any.assign/copy.pass.cpp b/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
index 37618f7..68de5e3 100644
--- a/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
+++ b/test/std/utilities/any/any.class/any.assign/copy.pass.cpp
@@ -102,7 +102,7 @@
// empty
{
any a;
- a = a;
+ a = (any &)a;
assertEmpty(a);
assert(globalMemCounter.checkOutstandingNewEq(0));
}
@@ -112,7 +112,7 @@
any a((small(1)));
assert(small::count == 1);
- a = a;
+ a = (any &)a;
assert(small::count == 1);
assertContains<small>(a, 1);
@@ -125,7 +125,7 @@
any a(large(1));
assert(large::count == 1);
- a = a;
+ a = (any &)a;
assert(large::count == 1);
assertContains<large>(a, 1);
diff --git a/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp b/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
index 9b83dde..1c2be02 100644
--- a/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
+++ b/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/copy_assign.pass.cpp
@@ -92,28 +92,28 @@
{
typedef std::function<int()> Func;
Func f = g0;
- Func& fr = (f = f);
+ Func& fr = (f = (Func &)f);
assert(&fr == &f);
assert(*f.target<int(*)()>() == g0);
}
{
typedef std::function<int(int)> Func;
Func f = g;
- Func& fr = (f = f);
+ Func& fr = (f = (Func &)f);
assert(&fr == &f);
assert(*f.target<int(*)(int)>() == g);
}
{
typedef std::function<int(int, int)> Func;
Func f = g2;
- Func& fr = (f = f);
+ Func& fr = (f = (Func &)f);
assert(&fr == &f);
assert(*f.target<int(*)(int, int)>() == g2);
}
{
typedef std::function<int(int, int, int)> Func;
Func f = g3;
- Func& fr = (f = f);
+ Func& fr = (f = (Func &)f);
assert(&fr == &f);
assert(*f.target<int(*)(int, int, int)>() == g3);
}