[Bug c/77754] [5/6/7 Regression] internal compiler error : tree code 'call_expr' is not supported in LTO streams

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Sep 27 10:45:00 GMT 2016


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


More information about the Gcc-bugs mailing list