blob: 03a1a51ccd4c078c0d89b65544e52dd001368c14 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
! { dg-do compile }
! PR fortran/37429
! Checks for assignments from type-bound functions.
MODULE touching
IMPLICIT NONE
TYPE :: EqnSys33
CONTAINS
PROCEDURE, NOPASS :: solve1
PROCEDURE, NOPASS :: solve2
PROCEDURE, NOPASS :: solve3
END TYPE EqnSys33
CONTAINS
FUNCTION solve1 ()
IMPLICIT NONE
REAL :: solve1(3)
solve1 = 0.0
END FUNCTION solve1
CHARACTER(len=5) FUNCTION solve2 ()
IMPLICIT NONE
solve2 = "hello"
END FUNCTION solve2
REAL FUNCTION solve3 ()
IMPLICIT NONE
solve3 = 4.2
END FUNCTION solve3
SUBROUTINE fill_gap ()
IMPLICIT NONE
TYPE(EqnSys33) :: sys
REAL :: res
REAL :: resArr(3), resSmall(2)
res = sys%solve1 () ! { dg-error "Incompatible rank" }
res = sys%solve2 () ! { dg-error "Can't convert" }
resSmall = sys%solve1 () ! { dg-error "Different shape" }
res = sys%solve3 ()
resArr = sys%solve1 ()
END SUBROUTINE fill_gap
END MODULE touching
! { dg-final { cleanup-modules "touching" } }
|