3 ! Check that generic bindings targetting ELEMENTAL procedures work.
10 PROCEDURE, NOPASS :: double
11 PROCEDURE, NOPASS :: double_here
12 GENERIC :: double_it => double
13 GENERIC :: double_inplace => double_here
18 ELEMENTAL INTEGER FUNCTION double (val)
20 INTEGER, INTENT(IN) :: val
24 ELEMENTAL SUBROUTINE double_here (val)
26 INTEGER, INTENT(INOUT) :: val
28 END SUBROUTINE double_here
37 INTEGER :: arr(42), arr2(42), arr3(42), arr4(42)
40 arr = (/ (i, i = 1, 42) /)
42 arr2 = obj%double (arr)
43 arr3 = obj%double_it (arr)
46 CALL obj%double_inplace (arr4)
48 IF (ANY (arr2 /= 2 * arr) .OR. &
49 ANY (arr3 /= 2 * arr) .OR. &
50 ANY (arr4 /= 2 * arr)) THEN