1 /* { dg-do run } */
2 /* { dg-options "-O3 -fno-tree-pta" } */
3
4 typedef __SIZE_TYPE__ size_t;
5
6 __attribute__((__noipa__))
7 void BUF_reverse (unsigned char *out, const unsigned char *in, size_t size)
8 {
9 size_t i;
10 if (in)
11 {
12 out += size - 1;
13 for (i = 0; i < size; i++)
14 *out++ = *in++;
15 }
16 else
17 {
18 unsigned char *q;
19 char c;
20 q = out + size - 1;
21 for (i = 0; i < size ; i++)
22 {
23 *out++ = 1;
24 }
25 }
26 }
27
28 int
29 main (void)
30 {
31 unsigned char buf[40];
32 unsigned char buf1[40];
33 for (unsigned i = 0; i < sizeof (buf); i++)
34 buf[i] = i;
35 BUF_reverse (buf, 0, sizeof (buf));
36 for (unsigned i = 0; i < sizeof (buf); i++)
37 if (buf[i] != 1)
38 __builtin_abort ();
39
40 return 0;
41 }