[Bug fortran/88304] [9 Regression] ICE in use_pointer_in_frame, at tree-nested.c:267
anlauf at gmx dot de
gcc-bugzilla@gcc.gnu.org
Tue Dec 4 21:11:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88304
--- Comment #5 from Harald Anlauf <anlauf at gmx dot de> ---
(In reply to Richard Biener from comment #4)
> Confirmed. We do not expect
>
> CHAIN.10->gattr = {CLOBBER};
>
> I believe the FE inserts these now to better share stack slots:
Thanks for pointing to the gimple. Looking at it with my zero knowledge,
it looks in addition to a wrong code issue. With this is mind, I further
reduced the complete testcase to this:
MODULE mo_feedbk
implicit none
type t_fileinfo
integer :: nex = -1
integer :: pad = 0
end type t_fileinfo
interface nf90_get_att
module procedure nf90_get_att_one_FourByteInt
end interface
contains
function nf90_get_att_one_FourByteInt(ncid, varid, name, values)
integer, intent( in) :: ncid, varid
character(len=*), intent( in) :: name
integer , intent(out) :: values
integer :: nf90_get_att_one_FourByteInt
end function nf90_get_att_one_FourByteInt
subroutine convert_cof ()
integer :: dummy = -1
! type(t_fileinfo), save :: gattr ! No ICE
type(t_fileinfo) :: gattr ! ICE
contains
subroutine open_input
integer :: rc
rc = nf90_get_att (0, 0, "experiment", dummy ) ! OK
rc = nf90_get_att (0, 0, "experiment", gattr%nex ) ! ICE
end subroutine open_input
end subroutine convert_cof
end module mo_feedbk
A derived type with component initialization (like t_fileinfo) should
implicitly get the SAVE attribute, which appears to be lost here.
Adding it explicitly removes the ICE. Thus a front-end issue?
More information about the Gcc-bugs
mailing list