1 struct VEC_char_base 2 { 3 unsigned num; 4 unsigned alloc; 5 short vec[1]; 6 }; 7 8 short __attribute__((noinline)) foo(struct VEC_char_base * p,int i)9foo (struct VEC_char_base *p, int i) 10 { 11 short *q; 12 p->vec[i] = 0; 13 q = &p->vec[8]; 14 *q = 1; 15 return p->vec[i]; 16 } 17 18 extern void abort (void); 19 extern void *malloc (__SIZE_TYPE__); 20 21 int main()22main() 23 { 24 struct VEC_char_base *p = malloc (sizeof (struct VEC_char_base) + 256); 25 if (foo (p, 8) != 1) 26 abort (); 27 return 0; 28 } 29