On Mon, May 14, 2012 at 02:08:34PM +0200, Bernd Schmidt wrote:
> --- gcc/builtins.def  (revision 187411)
> +++ gcc/builtins.def  (working copy)
> @@ -532,10 +532,10 @@ DEF_EXT_LIB_BUILTIN    (BUILT_IN_BZERO,
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_INDEX, "index", 
> BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
>  DEF_LIB_BUILTIN        (BUILT_IN_MEMCHR, "memchr", 
> BT_FN_PTR_CONST_PTR_INT_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
>  DEF_LIB_BUILTIN        (BUILT_IN_MEMCMP, "memcmp", 
> BT_FN_INT_CONST_PTR_CONST_PTR_SIZE, ATTR_PURE_NOTHROW_NONNULL_LEAF)
> -DEF_LIB_BUILTIN        (BUILT_IN_MEMCPY, "memcpy", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> -DEF_LIB_BUILTIN        (BUILT_IN_MEMMOVE, "memmove", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> +DEF_LIB_BUILTIN        (BUILT_IN_MEMCPY, "memcpy", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF)
> +DEF_LIB_BUILTIN        (BUILT_IN_MEMMOVE, "memmove", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY, "mempcpy", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> -DEF_LIB_BUILTIN        (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, 
> ATTR_NOTHROW_NONNULL_LEAF)
> +DEF_LIB_BUILTIN        (BUILT_IN_MEMSET, "memset", BT_FN_PTR_PTR_INT_SIZE, 
> ATTR_RET1_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_RINDEX, "rindex", 
> BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY, "stpcpy", 
> BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPNCPY, "stpncpy", 
> BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> @@ -543,7 +543,7 @@ DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRCASE
>  DEF_LIB_BUILTIN        (BUILT_IN_STRCAT, "strcat", 
> BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
>  DEF_LIB_BUILTIN        (BUILT_IN_STRCHR, "strchr", 
> BT_FN_STRING_CONST_STRING_INT, ATTR_PURE_NOTHROW_NONNULL_LEAF)
>  DEF_LIB_BUILTIN        (BUILT_IN_STRCMP, "strcmp", 
> BT_FN_INT_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
> -DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", 
> BT_FN_STRING_STRING_CONST_STRING, ATTR_NOTHROW_NONNULL_LEAF)
> +DEF_LIB_BUILTIN        (BUILT_IN_STRCPY, "strcpy", 
> BT_FN_STRING_STRING_CONST_STRING, ATTR_RET1_NOTHROW_NONNULL_LEAF)
>  DEF_LIB_BUILTIN        (BUILT_IN_STRCSPN, "strcspn", 
> BT_FN_SIZE_CONST_STRING_CONST_STRING, ATTR_PURE_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRDUP, "strdup", 
> BT_FN_STRING_CONST_STRING, ATTR_MALLOC_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STRNDUP, "strndup", 
> BT_FN_STRING_CONST_STRING_SIZE, ATTR_MALLOC_NOTHROW_NONNULL_LEAF)
> @@ -757,8 +757,8 @@ DEF_BUILTIN_STUB (BUILT_IN_ALLOCA_WITH_A
>  
>  /* Object size checking builtins.  */
>  DEF_GCC_BUILTIN             (BUILT_IN_OBJECT_SIZE, "object_size", 
> BT_FN_SIZE_CONST_PTR_INT, ATTR_PURE_NOTHROW_LEAF_LIST)
> -DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMCPY_CHK, "__memcpy_chk", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> -DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMMOVE_CHK, "__memmove_chk", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
> +DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMCPY_CHK, "__memcpy_chk", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF)
> +DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMMOVE_CHK, "__memmove_chk", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_RET1_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMPCPY_CHK, "__mempcpy_chk", 
> BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_MEMSET_CHK, "__memset_chk", 
> BT_FN_PTR_PTR_INT_SIZE_SIZE, ATTR_NOTHROW_NONNULL_LEAF)
>  DEF_EXT_LIB_BUILTIN    (BUILT_IN_STPCPY_CHK, "__stpcpy_chk", 
> BT_FN_STRING_STRING_CONST_STRING_SIZE, ATTR_NOTHROW_NONNULL_LEAF)

You are missing also BUILT_IN_STRNCPY, BUILT_IN_MEMSET_CHK,
BUILT_IN_STRCPY_CHK and BUILT_IN_STRNCPY_CHK.
BUILT_IN_ASSUME_ALIGNED also does, but it should be optimized away
far before expansion already.

        Jakub

Reply via email to