comparison gcc/testsuite/gcc.c-torture/execute/pr65369.c @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children
comparison
equal deleted inserted replaced
68:561a7518be6b 111:04ced10e8804
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 }