Hi! All the following testcases were fixed by r266271 aka PR87229 fix already. I've regtested them on x86_64-linux and i686-linux and committed to trunk as obvious.
2019-02-25 Jakub Jelinek <ja...@redhat.com> PR c/77754 * gcc.c-torture/compile/pr77754-1.c: New test. * gcc.c-torture/compile/pr77754-2.c: New test. * gcc.c-torture/compile/pr77754-3.c: New test. * gcc.c-torture/compile/pr77754-4.c: New test. * gcc.c-torture/compile/pr77754-5.c: New test. * gcc.c-torture/compile/pr77754-6.c: New test. --- gcc/testsuite/gcc.c-torture/compile/pr77754-1.c.jj 2019-02-25 17:40:26.652905532 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-1.c 2019-02-25 17:40:26.652905532 +0100 @@ -0,0 +1,11 @@ +/* PR c/77754 */ + +int fn3(); + +void fn4(int[][fn3 ()]); + +void fn1() { + void fn2(int[][fn3 ()]); + int a[10][fn3 ()]; + fn4 (a); +} --- gcc/testsuite/gcc.c-torture/compile/pr77754-2.c.jj 2019-02-25 17:40:26.652905532 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-2.c 2019-02-25 17:40:26.652905532 +0100 @@ -0,0 +1,10 @@ +/* PR c/77754 */ + +int fn3(); + +void (**fn5) (int[][fn3 ()]); + +void fn1 () { + int a[10][fn3 ()]; + (**fn5) (a); +} --- gcc/testsuite/gcc.c-torture/compile/pr77754-3.c.jj 2019-02-25 17:40:26.651905548 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-3.c 2019-02-25 17:40:26.651905548 +0100 @@ -0,0 +1,11 @@ +/* PR c/77754 */ + +int fn3(); + +typedef void (*fn6) (int[][fn3 ()]); +fn6 **fn7; + +void fn1 () { + int a[10][fn3 ()]; + (**fn7) (a); +} --- gcc/testsuite/gcc.c-torture/compile/pr77754-4.c.jj 2019-02-25 17:40:26.652905532 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-4.c 2019-02-25 17:40:26.652905532 +0100 @@ -0,0 +1,17 @@ +/* PR c/77754 */ + +int fn3(); + +typedef void (*fn6) (int[][fn3 ()]); +struct S { + fn6 **fn7; + fn6 *fn8; + fn6 fn9; +} s; + +void fn1 () { + int a[10][fn3 ()]; + (**s.fn7) (a); + (*s.fn8) (a); + s.fn9 (a); +} --- gcc/testsuite/gcc.c-torture/compile/pr77754-5.c.jj 2019-02-25 17:40:26.652905532 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-5.c 2019-02-25 17:40:26.652905532 +0100 @@ -0,0 +1,14 @@ +/* PR c/77754 */ + +int fn3(); + +void fn4(int[][fn3 ()]); +void fn4(int x[][fn3 ()]) +{ +} + +void fn1() { + void fn2(int[][fn3 ()]); + int a[10][fn3 ()]; + fn4 (a); +} --- gcc/testsuite/gcc.c-torture/compile/pr77754-6.c.jj 2019-02-25 17:40:26.651905548 +0100 +++ gcc/testsuite/gcc.c-torture/compile/pr77754-6.c 2019-02-25 17:40:26.651905548 +0100 @@ -0,0 +1,10 @@ +/* PR c/77754 */ + +int fn3(); + +void fn4(int (*)[fn3 ()][fn3 () + 1][fn3 () + 2], struct S { int a[fn3 ()]; } *); + +void fn1() { + int a[10][fn3 ()][fn3 () + 1][fn3 () + 2]; + fn4 (a, 0); +} Jakub