1 extern void abort ();
2 extern int abs (int __x) __attribute__ ((__nothrow__, __leaf__)) __attribute__ ((__const__));
3
4 static int
foo(unsigned char * w,int i,unsigned char * x,int j)5 foo (unsigned char *w, int i, unsigned char *x, int j)
6 {
7 int tot = 0;
8 for (int a = 0; a < 16; a++)
9 {
10 for (int b = 0; b < 16; b++)
11 tot += abs (w[b] - x[b]);
12 w += i;
13 x += j;
14 }
15 return tot;
16 }
17
18 void
bar(unsigned char * w,unsigned char * x,int i,int * result)19 bar (unsigned char *w, unsigned char *x, int i, int *result)
20 {
21 *result = foo (w, 16, x, i);
22 }
23
24 int
main(void)25 main (void)
26 {
27 unsigned char m[256];
28 unsigned char n[256];
29 int sum, i;
30
31 for (i = 0; i < 256; ++i)
32 if (i % 2 == 0)
33 {
34 m[i] = (i % 8) * 2 + 1;
35 n[i] = -(i % 8);
36 }
37 else
38 {
39 m[i] = -((i % 8) * 2 + 2);
40 n[i] = -((i % 8) >> 1);
41 }
42
43 bar (m, n, 16, &sum);
44
45 if (sum != 32384)
46 abort ();
47
48 return 0;
49 }
50