modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/execute/990811-1.c (about) 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 }