https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62135
--- Comment #4 from Steven Bosscher <steven at gcc dot gnu.org> --- (In reply to Anastasios Vathis from comment #2) > In any case, there sould be a " SYNTAX ERROR" issued It's not an error, the case can simply never match. If you compile with -Wall you get a warning: $ gfortran t.f90 -Wall t.f90:27.23: CASE ('2':'7','9':'0') 1 Warning: Range specification at (1) can never be matched $ Problem is a simple list walk error if the unreachable case is the last in the list. Plugged with the following patch. Index: resolve.c =================================================================== --- resolve.c (revision 214292) +++ resolve.c (working copy) @@ -7761,7 +7761,7 @@ resolve_select (gfc_code *code, bool select_type) /* Strip all other unreachable cases. */ if (body->ext.block.case_list) { - for (cp = body->ext.block.case_list; cp->next; cp = cp->next) + for (cp = body->ext.block.case_list; cp && cp->next; cp = cp->next) { if (cp->next->unreachable) {