1! { dg-do compile } 2 3! Type-bound procedures 4! Test for name collision between type-bound procedures and components. 5 6MODULE testmod 7 IMPLICIT NONE 8 9 TYPE t 10 REAL :: comp 11 CONTAINS 12 PROCEDURE, NOPASS :: comp => proc ! { dg-error "same name as a component" } 13 END TYPE t 14 15 TYPE supert 16 INTEGER :: comp1 17 CONTAINS 18 PROCEDURE, NOPASS :: comp2 => proc 19 END TYPE supert 20 21 TYPE, EXTENDS(supert) :: subt1 22 INTEGER :: comp2 ! { dg-error "same name" } 23 END TYPE subt1 24 25 TYPE, EXTENDS(supert) :: subt2 26 CONTAINS 27 PROCEDURE, NOPASS :: comp1 => proc ! { dg-error "same name as an inherited component" } 28 END TYPE subt2 29 30CONTAINS 31 32 SUBROUTINE proc () 33 END SUBROUTINE proc 34 35END MODULE testmod 36