modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/pr65369.c (about) 1 /* PR tree-optimization/65369 */ 2 #include <stdint.h> 3 4 static const char data[] = 5 "12345678901234567890123456789012345678901234567890" 6 "123456789012345678901234567890"; 7 8 __attribute__ ((noinline)) 9 static void foo (const unsigned int *buf) 10 { 11 if (__builtin_memcmp (buf, data, 64)) 12 __builtin_abort (); 13 } 14 15 __attribute__ ((noinline)) 16 static void bar (const unsigned char *block) 17 { 18 uint32_t buf[16]; 19 __builtin_memcpy (buf + 0, block + 0, 4); 20 __builtin_memcpy (buf + 1, block + 4, 4); 21 __builtin_memcpy (buf + 2, block + 8, 4); 22 __builtin_memcpy (buf + 3, block + 12, 4); 23 __builtin_memcpy (buf + 4, block + 16, 4); 24 __builtin_memcpy (buf + 5, block + 20, 4); 25 __builtin_memcpy (buf + 6, block + 24, 4); 26 __builtin_memcpy (buf + 7, block + 28, 4); 27 __builtin_memcpy (buf + 8, block + 32, 4); 28 __builtin_memcpy (buf + 9, block + 36, 4); 29 __builtin_memcpy (buf + 10, block + 40, 4); 30 __builtin_memcpy (buf + 11, block + 44, 4); 31 __builtin_memcpy (buf + 12, block + 48, 4); 32 __builtin_memcpy (buf + 13, block + 52, 4); 33 __builtin_memcpy (buf + 14, block + 56, 4); 34 __builtin_memcpy (buf + 15, block + 60, 4); 35 foo (buf); 36 } 37 38 int 39 main () 40 { 41 unsigned char input[sizeof data + 16] __attribute__((aligned (16))); 42 __builtin_memset (input, 0, sizeof input); 43 __builtin_memcpy (input + 1, data, sizeof data); 44 bar (input + 1); 45 return 0; 46 }