------- Comment #1 from janus at gcc dot gnu dot org 2009-11-22 13:46 ------- Draft patch:
Index: gcc/fortran/resolve.c =================================================================== --- gcc/fortran/resolve.c (revision 154423) +++ gcc/fortran/resolve.c (working copy) @@ -7035,6 +7035,14 @@ resolve_select_type (gfc_code *code) for (c1 = &class_is; (*c1) && (*c1)->block; c1 = &((*c1)->block)) { c2 = (*c1)->block; + /* F03:C817 (check for doubles). */ + if ((*c1)->ext.case_list->ts.u.derived->hash_value + == c2->ext.case_list->ts.u.derived->hash_value) + { + gfc_error ("Double CLASS IS block in SELECT TYPE " + "statement at %L", &c2->ext.case_list->where); + return; + } if ((*c1)->ext.case_list->ts.u.derived->attr.extension < c2->ext.case_list->ts.u.derived->attr.extension) { -- janus at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at gcc dot gnu |janus at gcc dot gnu dot org |dot org | Status|UNCONFIRMED |ASSIGNED Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2009-11-22 13:46:59 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42053