https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64173
Bug ID: 64173 Summary: ICE involving derived type function pointers Product: gcc Version: 4.9.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: townsend at astro dot wisc.edu Created attachment 34184 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34184&action=edit Code to reproduce the crash I'm encountering an ICE when compiling the attached code with 4.9.2 on OS X Yosemite (the error also occurs on 10.0/Linux). The error is as follows: gyre_r_magnus_ivp.f90: In function 'doinit': gyre_r_magnus_ivp.f90:36:0: internal compiler error: in gfc_conv_descriptor_data_set, at fortran/trans-array.c:172 end function doinit ^ gyre_r_magnus_ivp.f90:36:0: internal compiler error: Abort trap: 6 gfortran.exec: internal compiler error: Abort trap: 6 (program f951) The code is a pruned down version of some production code; I've tried to remove as much superfluous stuff as possible. It seems that the combination of a procedure pointer and a derived type component, in the definition of r_magnus_ivp_t, is responsible for the crash -- but note that the crash disappears if I comment out the doinit routine. Weird!