g++9 now warns if a copy assignment operator is specified and a default
copy constructor is implicitly generated, or vice versa. libc++ tripped
these warnings with some copy assignment operators which were declared
private and not defined. Avoid the warnings by declaring them with
delete.
I should say that I am putting this patch up for comment without having
done all due diligence. I am not an expert here in any case, I don't
have a strong grasp of what's going on here and whether this patch is in
the right direction.
This assumes that the intention of these declarations really had been to
prevent use of the operator=, and that the existing uses of the
implicitly generated default copy constructors are intended and okay.
I have also not yet done useful testing with libcxx. I have however
checked that after applying this patch to the libcxx imported into
FreeBSD, that I no longer see the Wdeprecated-copy warnings upon
building C++ programs with g++9.