extern void abort (void); struct S { long o; }; struct T { long o; struct S m[82]; }; struct T t; int main () { struct S *p, *q; p = (struct S *) &t; p = &((struct T *) p)->m[0]; q = p + 82; while (--q > p) q->o = -1; q->o = 0; if (q > p) abort (); if (q - p > 0) abort (); return 0; }