Comment # 6 on bug 1196279 from
Note glibc dispatches to the extern via an alias instead of a #define to a
builtin:

extern char *__stpncpy_chk (char *__dest, const char *__src, size_t __n,
       size_t __destlen) __attribute__ ((__nothrow__ , __leaf__));
extern char *__stpncpy_alias (char *__dest, const char *__src, size_t __n)
__asm__ ("" "stpncpy") __attribute__ ((__nothrow__ , __leaf__))
                                 ;

extern __inline __attribute__ ((__always_inline__)) __attribute__
((__gnu_inline__)) __attribute__ ((__artificial__)) char *
__attribute__ ((__nothrow__ , __leaf__)) stpncpy (char *__dest, const char
*__src, size_t __n)
{
  if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
      && (!__builtin_constant_p (__n) || __n > __builtin_object_size (__dest, 2
> 1)))
    return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2
> 1));
  return __stpncpy_alias (__dest, __src, __n);
}

that might be a way to avoid the diagnostic.


You are receiving this mail because: