OSDN Git Service

* gcc.c-torture/execute/990811-1.c: New test.
[pf3gnuchains/gcc-fork.git] / gcc / testsuite / gcc.c-torture / execute / 990811-1.c
1 struct s {long a; int b;};
2
3 int foo(int x, void *y)
4 {
5   switch(x) {
6     case 0: return ((struct s*)y)->a;
7     case 1: return *(signed char*)y;
8     case 2: return *(short*)y;
9   }
10   abort();
11 }
12
13 int main ()
14 {
15   struct s s;
16   short sh[10];
17   signed char c[10];
18   int i;
19
20   s.a = 1;
21   s.b = 2;
22   for (i = 0; i < 10; i++) {
23     sh[i] = i;
24     c[i] = i;
25   }
26
27   if (foo(0, &s) != 1) abort();
28   if (foo(1, c+3) != 3) abort();
29   if (foo(2, sh+3) != 3) abort();
30   exit(0);
31 }