[Bug fortran/88304] [9 Regression] ICE in use_pointer_in_frame, at tree-nested.c:267

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 4 13:43:00 GMT 2018


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88304

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |NEW
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.  We do not expect

CHAIN.10->gattr = {CLOBBER};

I believe the FE inserts these now to better share stack slots:

open_input ()
{
  {
    static integer(kind=4) C.3884 = 0;
    integer(kind=4) D.3887;

    gattr = {CLOBBER};
    D.3887 = nf90_get_att_one_fourbyteint (&ncid, &C.3884, &"experiment"[1]{lb:
1 sz: 1}, &gattr.nex, 10);
    chk (&D.3887, 0B);
  }
}


And the issue is that we transform these into

CHAIN.10->gattr = {CLOBBER};

which isn't valid GIMPLE.  Now we can drop the nonlocal clobbers on the floor
(easy) or if we want to re-gimplify this into

  ptr = &CHAIN.10->gattr;
  *ptr = {CLOBBER};

dropping it would eventually be possible in convert_nonlocal_reference_op
via wi->gsi.

Jakub?


More information about the Gcc-bugs mailing list