File: resolve61.f90

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,998,492 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (137 lines) | stat: -rw-r--r-- 2,667 bytes parent folder | download | duplicates (7)
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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
! RUN: %python %S/test_errors.py %s %flang_fc1
subroutine p1
  integer(8) :: a, b, c, d
  pointer(a, b)
  !ERROR: 'b' cannot be a Cray pointer as it is already a Cray pointee
  pointer(b, c)
  !ERROR: 'a' cannot be a Cray pointee as it is already a Cray pointer
  pointer(d, a)
end

subroutine p2
  pointer(a, c)
  !ERROR: 'c' was already declared as a Cray pointee
  pointer(b, c)
end

subroutine p3
  real a
  !ERROR: Cray pointer 'a' must have type INTEGER(8)
  pointer(a, b)
end

subroutine p4
  implicit none
  real b
  !ERROR: No explicit type declared for 'd'
  pointer(a, b), (c, d)
end

subroutine p5
  integer(8) a(10)
  !ERROR: Cray pointer 'a' must be a scalar
  pointer(a, b)
end

subroutine p6
  real b(8)
  !ERROR: The dimensions of 'b' have already been declared
  pointer(a, b(4))
end

subroutine p7
  !ERROR: Cray pointee 'b' must have explicit shape or assumed size
  pointer(a, b(:))
contains
  subroutine s(x, y)
    real :: x(*)  ! assumed size
    !ERROR: Cray pointee 'y' must have explicit shape or assumed size
    real :: y(:)  ! assumed shape
    pointer(w, y)
  end
end

subroutine p8
  integer(8), parameter :: k = 2
  type t
  end type
  !ERROR: 't' is not a variable
  pointer(t, a)
  !ERROR: 's' is not a variable
  pointer(s, b)
  !ERROR: 'k' is a named constant and may not be a Cray pointer
  pointer(k, c)
contains
  subroutine s
  end
end

subroutine p9
  integer(8), parameter :: k = 2
  type t
  end type
  !ERROR: 't' is already declared in this scoping unit
  pointer(a, t)
  !ERROR: Declaration of 's' conflicts with its use as internal procedure
  pointer(b, s)
  !ERROR: 'k' is a named constant and may not be a Cray pointee
  pointer(c, k)
contains
  subroutine s
  end
end

module m10
  integer(8) :: a
  real :: b
end
subroutine p10
  use m10
  !ERROR: 'b' is use-associated from module 'm10' and cannot be re-declared
  pointer(a, c),(d, b)
end

subroutine p11
  pointer(a, b)
  !ERROR: PARAMETER attribute not allowed on 'a'
  parameter(a=2)
  !ERROR: PARAMETER attribute not allowed on 'b'
  parameter(b=3)
end

subroutine p12
  type t1
    sequence
    real c1
  end type
  type t2
    integer c2
  end type
  type, bind(c) :: t3
    integer c3
  end type
  type(t1) :: x1
  type(t2) :: x2
  type(t3) :: x3
  pointer(a, x1)
  !WARNING: Type of Cray pointee 'x2' is a derived type that is neither SEQUENCE nor BIND(C)
  pointer(b, x2)
  pointer(c, x3)
end

subroutine p13
  pointer(ip, x)
 contains
  subroutine s
    pointer(ip, x) ! ok, local declaration
  end
end

subroutine p14
  real :: r
  block
    asynchronous :: r
    !ERROR: PARAMETER attribute not allowed on 'r'
    parameter (r = 1.0)
  end block
end