xref: /aosp_15_r20/external/clang/INPUTS/stpcpy-test.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
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