+++ /dev/null
-struct s {long a; int b;};
-
-int foo(int x, void *y)
-{
- switch(x) {
- case 0: return ((struct s*)y)->a;
- case 1: return *(signed char*)y;
- case 2: return *(short*)y;
- }
- abort();
-}
-
-int main ()
-{
- struct s s;
- short sh[10];
- signed char c[10];
- int i;
-
- s.a = 1;
- s.b = 2;
- for (i = 0; i < 10; i++) {
- sh[i] = i;
- c[i] = i;
- }
-
- if (foo(0, &s) != 1) abort();
- if (foo(1, c+3) != 3) abort();
- if (foo(2, sh+3) != 3) abort();
- exit(0);
-}