/* { dg-do run } */ extern void abort (void) __attribute__((noreturn)); struct S { int f0; } a; int b, e, *d = &b, f; void fn1 () { int **g[9][6]; int ***h = &g[6][3]; for (; e < 9; e++) { f = 0; for (; f < 6; f++) g[e][f] = &d; } ***h = 0; } void fn2 () { fn1 (); struct S c[4][10] = {}; a = c[3][9]; } int main () { fn2 (); if (a.f0 != 0) abort (); return 0; }