resolve36.f90
2.06 KB
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
! RUN: %S/test_errors.sh %s %t %f18
! C1568 The procedure-name shall have been declared to be a separate module
! procedure in the containing program unit or an ancestor of that program unit.
module m1
interface
module subroutine sub1(arg1)
integer, intent(inout) :: arg1
end subroutine
module integer function fun1()
end function
end interface
type t
end type
integer i
end module
submodule(m1) s1
contains
!ERROR: 'missing1' was not declared a separate module procedure
module procedure missing1
end
!ERROR: 'missing2' was not declared a separate module procedure
module subroutine missing2
end
!ERROR: 't' was not declared a separate module procedure
module procedure t
end
!ERROR: 'i' was not declared a separate module procedure
module subroutine i
end
end submodule
module m2
interface
module subroutine sub1(arg1)
integer, intent(inout) :: arg1
end subroutine
module integer function fun1()
end function
end interface
type t
end type
!ERROR: Declaration of 'i' conflicts with its use as module procedure
integer i
contains
!ERROR: 'missing1' was not declared a separate module procedure
module procedure missing1
end
!ERROR: 'missing2' was not declared a separate module procedure
module subroutine missing2
end
!ERROR: 't' is already declared in this scoping unit
!ERROR: 't' was not declared a separate module procedure
module procedure t
end
!ERROR: 'i' was not declared a separate module procedure
module subroutine i
end
end module
! Separate module procedure defined in same module as declared
module m3
interface
module subroutine sub
end subroutine
end interface
contains
module procedure sub
end procedure
end module
! Separate module procedure defined in a submodule
module m4
interface
module subroutine a
end subroutine
module subroutine b
end subroutine
end interface
end module
submodule(m4) s4a
contains
module procedure a
end procedure
end submodule
submodule(m4:s4a) s4b
contains
module procedure b
end procedure
end