Hi Steve,
> > > If an error occurs, should this set m = MATCH_ERROR and goto cleanup? > > > OR, set m = MATCH_ERROR, free expr1 and expr2 and return m? > > > IOW, if an error occurs, why should gfortran continue to match select > > > rank? This prevents or reduces the deluge of errors that come from the cases and the case blocks. > > > > > > Still looking at the remaining part of patch. > > > > > > > There's another gfc_error_now several lines down. Does the > > same early return apply there as well. Same reason > > > > Also, found > > > > Index: gcc/fortran/parse.c > > =================================================================== > > *** gcc/fortran/parse.c (revision 275242) > > --- gcc/fortran/parse.c (working copy) > > + > > + /* At this point, we're got a nonempty select block. */ > > > > s/we're/we've > > > > Copy-n-paste may corrupt this, but the change is removing > 1 trailing whitespace space and leaving a remaining trailing > whitespace. OK I'll check. Thanks Paul