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".