1*67e74705SXin Li #define __extension__ 2*67e74705SXin Li 3*67e74705SXin Li #define __stpcpy(dest, src) (__extension__ (__builtin_constant_p (src) ? (__string2_1bptr_p (src) && strlen (src) + 1 <= 8 ? __stpcpy_small (dest, __stpcpy_args (src), strlen (src) + 1) : ((char *) __mempcpy (dest, src, strlen (src) + 1) - 1)) : __stpcpy (dest, src))) 4*67e74705SXin Li #define stpcpy(dest, src) __stpcpy (dest, src) 5*67e74705SXin Li #define __stpcpy_args(src) __extension__ __STRING2_SMALL_GET16 (src, 0), __extension__ __STRING2_SMALL_GET16 (src, 4), __extension__ __STRING2_SMALL_GET32 (src, 0), __extension__ __STRING2_SMALL_GET32 (src, 4) 6*67e74705SXin Li 7*67e74705SXin Li #define __mempcpy(dest, src, n) (__extension__ (__builtin_constant_p (src) && __builtin_constant_p (n) && __string2_1bptr_p (src) && n <= 8 ? __mempcpy_small (dest, __mempcpy_args (src), n) : __mempcpy (dest, src, n))) 8*67e74705SXin Li #define mempcpy(dest, src, n) __mempcpy (dest, src, n) 9*67e74705SXin Li #define __mempcpy_args(src) ((char *) (src))[0], ((char *) (src))[2], ((char *) (src))[4], ((char *) (src))[6], __extension__ __STRING2_SMALL_GET16 (src, 0), __extension__ __STRING2_SMALL_GET16 (src, 4), __extension__ __STRING2_SMALL_GET32 (src, 0), __extension__ __STRING2_SMALL_GET32 (src, 4) 10*67e74705SXin Li 11*67e74705SXin Li #define __STRING2_SMALL_GET16(src, idx) (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) 12*67e74705SXin Li 13*67e74705SXin Li #define __STRING2_SMALL_GET32(src, idx) (((((__const unsigned char *) (__const char *) (src))[idx + 3] << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 2]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx + 1]) << 8 | ((__const unsigned char *) (__const char *) (src))[idx]) 14*67e74705SXin Li 15*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 16*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 17*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 18*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 19*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 20*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 21*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 22*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 23*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 24*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 25*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 26*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 27*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 28*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 29*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 30*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 31*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 32*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 33*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 34*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 35*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 36*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 37*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 38*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 39*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 40*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 41*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 42*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 43*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 44*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 45*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 46*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 47*67e74705SXin Li stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e) 48