https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77754
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |lto CC| |jsm28 at gcc dot gnu.org --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> --- Note this isn't a nested function but a function declaration. Doesn't ICE with a nested function: int fn3(); void fn1() { void fn2(int a[][fn3()]) { } int x[1][fn3()]; fn2(x); } but still has the bogus non-gimplified type: fn1 () { ... static void fn2 (int[0:(sizetype) ((long int) SAVE_EXPR <fn3 ()> + -1)] *); and odd place of evaluating fn3(): fn2 (int[0:D.1798] * a) { int D.1797; sizetype D.1798; bitsizetype D.1799; sizetype D.1800; D.1797 = fn3 (); _1 = (long int) D.1797; ... I wonder what the standards say about side-effects in those "declarations".