blob: b96a8066e63c4b93bb13d7695ee0fa77dedc9854 [file] [log] [blame]
Chris Lattner4b009652007-07-25 00:24:17 +00001#define __extension__
2
3#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#define stpcpy(dest, src) __stpcpy (dest, src)
5#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
7#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#define mempcpy(dest, src, n) __mempcpy (dest, src, n)
9#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
11#define __STRING2_SMALL_GET16(src, idx) (((__const unsigned char *) (__const char *) (src))[idx + 1] << 8 | ((__const unsigned char *) (__const char *) (src))[idx])
12
13#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
15stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
16stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
17stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
18stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
19stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
20stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
21stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
22stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
23stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
24stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
25stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
26stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
27stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
28stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
29stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
30stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
31stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
32stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
33stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
34stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
35stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
36stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
37stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
38stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
39stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
40stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
41stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
42stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
43stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
44stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
45stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
46stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)
47stpcpy (stpcpy (stpcpy (stpcpy (a, b), c), d), e)