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?