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_tagvoid 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