https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68196
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-11-03 CC| |mikael at gcc dot gnu.org Summary|[6.0.0] ICE on function |[4.9/5/6 Regression] ICE on |result with procedure |function result with |pointer component |procedure pointer component Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- The ICE appeared between revisions r207428 (2014-02-03, compiles) and r207996 (2014-02-21, ICE). AFAICT this is due to an infinite loop in the recursive call to has_finalizer_component static bool has_finalizer_component (gfc_symbol *derived) { gfc_component *c; for (c = derived->components; c; c = c->next) { if (c->ts.type == BT_DERIVED && c->ts.u.derived->f2k_derived && c->ts.u.derived->f2k_derived->finalizers) return true; if (c->ts.type == BT_DERIVED && !c->attr.pointer && !c->attr.allocatable && has_finalizer_component (c->ts.u.derived)) return true; } return false; }