https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71445
--- Comment #9 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The thing is that programs or libraries compiled/linked against glibc 2.24+ might contain garbage in the high 32 bits of those values. So using e.g. kernel APIs directly in the wrappers will misbehave and so would the asan etc. diagnostics. I really think we either should symbol version all of libsanitizer (but the wrappers around libc functions should use the symbol versions from libc, so it will be non-fun, because the exact versions differ between different architectures), or always ignore the high bits, or at runtime check if we are running against glibc 2.24+ and only ignore the high bits in that case (the compatibility with pre-2.24 compiled objects would still not be perfect, as we'd ignore the upper bits when running against glibc 2.24+, but when running against older glibc we'd honor those).