! { dg-do compile } ! Type-bound procedures ! Test for name collision between type-bound procedures and components. MODULE testmod IMPLICIT NONE TYPE t REAL :: comp CONTAINS PROCEDURE, NOPASS :: comp => proc ! { dg-error "same name as a component" } END TYPE t TYPE supert INTEGER :: comp1 CONTAINS PROCEDURE, NOPASS :: comp2 => proc END TYPE supert TYPE, EXTENDS(supert) :: subt1 INTEGER :: comp2 ! { dg-error "same name" } END TYPE subt1 TYPE, EXTENDS(supert) :: subt2 CONTAINS PROCEDURE, NOPASS :: comp1 => proc ! { dg-error "same name as an inherited component" } END TYPE subt2 CONTAINS SUBROUTINE proc () END SUBROUTINE proc END MODULE testmod