modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/bcopy.c (about) 1 /* { dg-add-options stack_size } */ 2 3 void 4 bcopy1 (s, d, c) 5 long long *s; 6 long long *d; 7 int c; 8 { 9 int i; 10 c = c / 8; 11 for (i = 0; i < c; i++) 12 d[i] = s[i]; 13 } 14 15 void 16 bcopy2 (s, d, c) 17 long *s; 18 long *d; 19 int c; 20 { 21 int i; 22 c = c / 4; 23 for (i = 0; i < c; i++) 24 d[i] = s[i]; 25 } 26 27 28 void 29 bcopy3 (s, d, c) 30 char *s; 31 char *d; 32 int c; 33 { 34 long long z0, z1; 35 int r = d - s; 36 37 int i; 38 39 c /= 16; 40 41 z0 = *((long long *) s); 42 s += 8; 43 z1 = *((long long *) s); 44 s += 8; 45 for (i = 0; i < c; i++) 46 { 47 *(long long *)(s + r) = z0; 48 z0 = *((long long *) s); 49 s += 8; 50 *(long long *)(s + r) = z1; 51 z1 = *((long long *) s); 52 s += 8; 53 } 54 } 55 56 #if defined(STACK_SIZE) && STACK_SIZE < 16384 57 #define BYTES STACK_SIZE 58 #else 59 #define BYTES 16384 60 #endif 61 62 main () 63 { 64 long long s[BYTES / 8]; 65 long long d[BYTES / 8]; 66 int i; 67 68 for (i = 1; i < 67108864 / BYTES; i++) 69 bcopy (s, d, BYTES); 70 }