>From the Fortran 2003 standard: C817 (R823) For a given select-type-construct, the same type and kind type parameter values shall not be specified in more than one TYPE IS type-guard-stmt and shall not be specified in more than one CLASS IS type-guard-stmt.
This check is missing for CLASS IS blocks, as the following program is currently accepted (by the fortran-dev branch): type :: t integer :: i end type CLASS(t),pointer :: x select type (x) class is (t) print *,"a" class is (t) print *,"b" end select end -- Summary: [OOP] SELECT TYPE: reject duplicate CLASS IS blocks Product: gcc Version: 4.5.0 Status: UNCONFIRMED Keywords: accepts-invalid Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: janus at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42053