! { dg-do run } ! ! Test the fix for PR69834 in which the two derived types below ! had the same hash value and so generated an error in the resolution ! of SELECT TYPE. ! ! Reported by James van Buskirk on clf: ! https://groups.google.com/forum/#!topic/comp.lang.fortran/0bm3E5xJpkM ! module types implicit none type CS5SS integer x real y end type CS5SS type SQS3C logical u character(7) v end type SQS3C contains subroutine sub(x, switch) class(*), allocatable :: x integer :: switch select type(x) type is(CS5SS) if (switch .ne. 1) STOP 1 type is(SQS3C) if (switch .ne. 2) STOP 2 class default STOP 3 end select end subroutine sub end module types program test use types implicit none class(*), allocatable :: u1, u2 allocate(u1,source = CS5SS(2,1.414)) allocate(u2,source = SQS3C(.TRUE.,'Message')) call sub(u1, 1) call sub(u2, 2) end program test