https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68283
--- Comment #4 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to Dominique d'Humieres from comment #3) > > With revision r216098 (2014-10-10) it gives This seems a problem with the buffering of errors that Fortran does. I might have missed some cases. Or I may have mistakenly changed a gfc_error with gfc_error_now or viceversa. The first step would be to compare those gfc_error* calls for one working vs. one non-working revision and see if they match. The second step would be to compare why the working revision does not generate (or prints) the errors but the non-working one does. Something must be clearing the buffering flag (or not setting it) when it should not. > Internal Error at (1): > gfc_variable_attr(): Bad array reference Does the ICE happens while printing an error? If not, something must be checking for buffered errors and changing behavior depending on that. The new code might be clearing the buffered errors flag (or not buffering them at all) too early.