46 lines
943 B
Fortran
46 lines
943 B
Fortran
! { dg-do compile }
|
|
! Tests fix for PR20886 in which the passing of a generic procedure as
|
|
! an actual argument was not detected.
|
|
!
|
|
! The second module and the check that CALCULATION2 is a good actual
|
|
! argument was added following the fix for PR26374.
|
|
!
|
|
! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
|
|
!
|
|
MODULE TEST
|
|
INTERFACE CALCULATION
|
|
MODULE PROCEDURE C1, C2
|
|
END INTERFACE
|
|
CONTAINS
|
|
SUBROUTINE C1(r)
|
|
INTEGER :: r
|
|
END SUBROUTINE
|
|
SUBROUTINE C2(r)
|
|
REAL :: r
|
|
END SUBROUTINE
|
|
END MODULE TEST
|
|
|
|
MODULE TEST2
|
|
INTERFACE CALCULATION2
|
|
MODULE PROCEDURE CALCULATION2, C3
|
|
END INTERFACE
|
|
CONTAINS
|
|
SUBROUTINE CALCULATION2(r)
|
|
INTEGER :: r
|
|
END SUBROUTINE
|
|
SUBROUTINE C3(r)
|
|
REAL :: r
|
|
END SUBROUTINE
|
|
END MODULE TEST2
|
|
|
|
USE TEST
|
|
USE TEST2
|
|
CALL F(CALCULATION) ! { dg-error "GENERIC procedure" }
|
|
|
|
CALL F(CALCULATION2) ! OK because there is a same name specific
|
|
END
|
|
|
|
SUBROUTINE F()
|
|
END SUBROUTINE
|
|
! { dg-final { cleanup-modules "TEST TEST2" } }
|