https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70524
--- Comment #1 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- What is the gfc_warning* call that produces the ICE? Backtrace? It seems gfortran is generating a NULL loc or loc->lb, or it is keeping an invalid value of loc->nextc or loc->lb->line. This might be due to passing the wrong thing to the call or not setting up gfc_current_locus correctly. This for sure pre-dates the move to the new diagnostics: now we assert when checking whereas before the wrong loc was simply treated as unknown loc (building with --disable-checking should do just that and not ICE).