0dcda00203
From-SVN: r28665
32 lines
464 B
C
32 lines
464 B
C
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);
|
|
}
|