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
92
93
94
95
96
97
98
99
100
|
! { dg-do compile }
! This program tests the patch for PRs 20881, 23308, 25538 & 25710
! Assembled from PRs by Paul Thomas <pault@gcc.gnu.org>
module m
contains
subroutine g(x) ! Local entity
REAL :: x
x = 1.0
end subroutine g
end module m
! Error only appears once but testsuite associates with both lines.
function f(x) ! { dg-error "is already being used as a FUNCTION" }
REAL :: f, x
f = x
end function f
function g(x) ! Global entity
REAL :: g, x
g = x
! PR25710==========================================================
! Lahey -2607-S: "SOURCE.F90", line 26:
! Function 'f' cannot be referenced as a subroutine. The previous
! definition is in 'line 12'.
call f(g) ! { dg-error "is already being used as a FUNCTION" }
end function g
! Error only appears once but testsuite associates with both lines.
function h(x) ! { dg-error "is already being used as a FUNCTION" }
REAL :: h, x
h = x
end function h
SUBROUTINE TT()
CHARACTER(LEN=10), EXTERNAL :: j ! { dg-error "Return type mismatch" }
CHARACTER(LEN=10) :: T
! PR20881===========================================================
! Error only appears once but testsuite associates with both lines.
T = j (1.0) ! { dg-error "is already being used as a SUBROUTINE" }
print *, T
END SUBROUTINE TT
use m ! Main program
real x
integer a(10)
! PR23308===========================================================
! Lahey - 2604-S: "SOURCE.F90", line 52:
! The name 'foo' cannot be specified as both external procedure name
! and common block name. The previous appearance is in 'line 68'.
! Error only appears once but testsuite associates with both lines.
common /foo/ a ! { dg-error "is already being used as a COMMON" }
call f (x) ! OK - reference to local entity
call g (x) ! -ditto-
! PR25710===========================================================
! Lahey - 2607-S: "SOURCE.F90", line 62:
! Function 'h' cannot be referenced as a subroutine. The previous
! definition is in 'line 29'.
call h (x) ! { dg-error "is already being used as a FUNCTION" }
! PR23308===========================================================
! Lahey - 2521-S: "SOURCE.F90", line 68: Intrinsic procedure name or
! external procedure name same as common block name 'foo'.
call foo () ! { dg-error "is already being used as a COMMON" }
contains
SUBROUTINE f (x) ! Local entity
real x
x = 2
end SUBROUTINE f
end
! PR20881===========================================================
! Lahey - 2636-S: "SOURCE.F90", line 81:
! Subroutine 'j' is previously referenced as a function in 'line 39'.
SUBROUTINE j (x) ! { dg-error "is already being used as a SUBROUTINE" }
integer a(10)
common /bar/ a ! Global entity foo
real x
x = bar(1.0) ! OK for local procedure to have common block name
contains
function bar (x)
real bar, x
bar = 2.0*x
end function bar
END SUBROUTINE j
! PR25538===========================================================
! would ICE with entry and procedure having same names.
subroutine link2 (namef) ! { dg-error "is already being used as a SUBROUTINE" }
entry link2 (nameg) ! { dg-error "is already being used as a SUBROUTINE" }
return
end
! { dg-final { cleanup-modules "m" } }
|