1! { dg-do compile }
2! Tests fix for PR20886 in which the passing of a generic procedure as
3! an actual argument was not detected.
4!
5! The second module and the check that CALCULATION2 is a good actual
6! argument was added following the fix for PR26374.
7!
8! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
9!
10MODULE TEST
11INTERFACE CALCULATION
12  MODULE PROCEDURE C1, C2
13END INTERFACE
14CONTAINS
15SUBROUTINE C1(r)
16 INTEGER :: r
17END SUBROUTINE
18SUBROUTINE C2(r)
19 REAL :: r
20END SUBROUTINE
21END MODULE TEST
22
23MODULE TEST2
24INTERFACE CALCULATION2
25  MODULE PROCEDURE CALCULATION2, C3
26END INTERFACE
27CONTAINS
28SUBROUTINE CALCULATION2(r)
29 INTEGER :: r
30END SUBROUTINE
31SUBROUTINE C3(r)
32 REAL :: r
33END SUBROUTINE
34END MODULE TEST2
35
36USE TEST
37USE TEST2
38CALL F(CALCULATION)  ! { dg-error "GENERIC procedure" }
39
40CALL F(CALCULATION2) ! OK because there is a same name specific, but: ! { dg-error "More actual than formal arguments" }
41END
42
43SUBROUTINE F()
44END SUBROUTINE
45