http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55949



Jakub Jelinek <jakub at gcc dot gnu.org> changed:



           What    |Removed                     |Added

----------------------------------------------------------------------------

                 CC|                            |jakub at gcc dot gnu.org



--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-01-11 
22:14:09 UTC ---

Looks like a bug in whatever <string.h> headers you are using.

The second parameter for __builtin_object_size for memcpy should be always 0,

not __USE_FORTIFY_LEVEL > 1 (that is used for functions like strcpy and has the

additional restriction that the copying isn't allowed to cross array/field

boundaries).

In glibc there is

#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)

#define __bos0(ptr) __builtin_object_size (ptr, 0)

and

__extern_always_inline void *

__NTH (memcpy (void *__restrict __dest, __const void *__restrict __src,

               size_t __len))

{

  return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));

}

Reply via email to