On Wed, 13 Feb 2019, Chris Lamb wrote:
I can confirm this. Yes, it does look like these are some sort of
auto-generated C++ function. However, is there any reason why these
should not be subject to hardening too? If they should, then either
we are missing some kind of compiler/linker flag or perhaps even
these functions are being generated incorrectly (!).
If not, then we need to discover how to detect such functions and
ignore them in this Lintian check.
Decoding the function name with c++filt reveals:
$ c++filt
_ZNSt7__cxx1112basic_stringIwSt11char_traitsIwESaIwEE12_M_constructIPKwEEvT_S8_St20forward_iterator_tag
void std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>,
std::allocator<wchar_t> >::_M_construct<wchar_t const*>(wchar_t const*,
wchar_t const*, std::forward_iterator_tag)
I really don't understand C++ templates very well, but grepping around the
system includes directory, I have a hunch this might be the wmemcpy in
question:
https://github.com/gcc-mirror/gcc/blob/master/libstdc%2B%2B-v3/include/bits/char_traits.h#L477
Scott