nvptx, libgfortran: Switch out of "minimal" mode
[official-gcc.git] / gcc / testsuite / gfortran.dg / unlimited_polymorphic_32.f90
blobdf57bcd41cbb92a5933071f12e96184fa3e6f42f
1 implicit none
2 type t2
3 integer :: x
4 end type t2
6 type, extends(t2) :: t2e
7 integer :: y
8 end type t2e
10 type t
11 class(*), allocatable :: au, au2(:,:)
12 class(t2), allocatable :: at, at2(:,:)
13 end type t
15 type(t), target :: var, var0, var2(4), var2a(4)
16 class(*), allocatable :: au, au2(:,:)
17 class(t2), allocatable :: at, at2(:,:)
20 if (same_type_as (var%au, var%at)) error stop 1
21 if (same_type_as (var%au2, var%at)) error stop 2
22 if (same_type_as (var%au, var%at)) error stop 3
23 ! Note: class(*) has no declared type, hence .false.
24 if (same_type_as (var%au, var0%au)) error stop 4
25 if (same_type_as (var%au2, var0%au2)) error stop 5
26 if (same_type_as (var%au, var0%au2)) error stop 6
27 call c1(var%au, var%au, var%au2)
29 if (.not.same_type_as (var%at, var%at)) error stop 7
30 if (.not.same_type_as (var%at2, var%at)) error stop 8
31 if (.not.same_type_as (var%at, var%at2)) error stop 9
32 if (.not.extends_type_of (var%at, var%at)) error stop 10
33 if (.not.extends_type_of (var%at2, var%at)) error stop 11
34 if (.not.extends_type_of (var%at, var%at2)) error stop 12
35 if (same_type_as (var%at, var0%au)) error stop 13
36 if (same_type_as (var%at2, var0%au2)) error stop 14
37 if (same_type_as (var%at, var0%au2)) error stop 15
38 call c2(var%at, var%at, var%at2)
40 if (same_type_as (au, var%at)) error stop 16
41 if (same_type_as (au2, var%at)) error stop 17
42 if (same_type_as (au, var%at)) error stop 18
43 ! Note: class(*) has no declared type, hence .false.
44 if (same_type_as (au, var0%au)) error stop 19
45 if (same_type_as (au2, var0%au2)) error stop 20
46 if (same_type_as (au, var0%au2)) error stop 21
47 call c1(au, var%au, var%au2)
49 if (.not.same_type_as (at, var%at)) error stop 22
50 if (.not.same_type_as (at2, var%at)) error stop 23
51 if (.not.same_type_as (at, var%at2)) error stop 24
52 if (.not.extends_type_of (at, var%at)) error stop 25
53 if (.not.extends_type_of (at2, var%at)) error stop 26
54 if (.not.extends_type_of (at, var%at2)) error stop 27
55 if (same_type_as (at, var0%au)) error stop 28
56 if (same_type_as (at2, var0%au2)) error stop 29
57 if (same_type_as (at, var0%au2)) error stop 30
58 call c2(var%at, var%at, var%at2)
60 if (same_type_as (var%au, at)) error stop 31
61 if (same_type_as (var%au2, at)) error stop 32
62 if (same_type_as (var%au, at)) error stop 33
63 ! Note: class(*) has no declared type, hence .false.
64 if (same_type_as (var%au, au)) error stop 34
65 if (same_type_as (var%au2, au2)) error stop 35
66 if (same_type_as (var%au, au2)) error stop 36
67 call c1(var%au, var%au, au2)
69 if (.not.same_type_as (var%at, at)) error stop 37
70 if (.not.same_type_as (var%at2, at)) error stop 38
71 if (.not.same_type_as (var%at, at2)) error stop 39
72 if (.not.extends_type_of (var%at, at)) error stop 40
73 if (.not.extends_type_of (var%at2, at)) error stop 41
74 if (.not.extends_type_of (var%at, at2)) error stop 42
75 if (same_type_as (var%at, au)) error stop 43
76 if (same_type_as (var%at2, au2)) error stop 44
77 if (same_type_as (var%at, au2)) error stop 45
78 call c2(var%at, var%at, at2)
80 allocate(t2e :: var0%at, var0%at2(4,4))
81 allocate(t2 :: var0%au, var0%au2(4,4))
83 if (.not.same_type_as (var0%au, var%at)) error stop 46
84 if (.not.same_type_as (var0%au2, var%at)) error stop 47
85 if (.not.same_type_as (var0%au, var%at)) error stop 48
86 if (.not.same_type_as (var0%au, var0%au2)) error stop 49
87 if (.not.same_type_as (var0%au2, var0%au2)) error stop 50
88 if (.not.same_type_as (var0%au, var0%au2)) error stop 51
89 if (.not.extends_type_of (var0%au, var%at)) error stop 52
90 if (.not.extends_type_of (var0%au2, var%at)) error stop 53
91 if (.not.extends_type_of (var0%au, var%at)) error stop 54
92 if (.not.extends_type_of (var0%au, var0%au2)) error stop 55
93 if (.not.extends_type_of (var0%au2, var0%au2)) error stop 56
94 if (.not.extends_type_of (var0%au, var0%au2)) error stop 57
96 if (.not.same_type_as (var0%au, at)) error stop 58
97 if (.not.same_type_as (var0%au2, at)) error stop 59
98 if (.not.same_type_as (var0%au, at2)) error stop 60
99 if (.not.extends_type_of (var0%au, at)) error stop 61
100 if (.not.extends_type_of (var0%au2, at)) error stop 62
101 if (.not.extends_type_of (var0%au, at2)) error stop 63
103 if (same_type_as (var0%at, var%at)) error stop 64
104 if (same_type_as (var0%at2, var%at)) error stop 65
105 if (same_type_as (var0%at, var%at)) error stop 66
106 if (same_type_as (var0%at, var0%au2)) error stop 67
107 if (same_type_as (var0%at2, var0%au2)) error stop 68
108 if (same_type_as (var0%at, var0%au2)) error stop 69
109 if (.not.extends_type_of (var0%at, var%at)) error stop 70
110 if (.not.extends_type_of (var0%at2, var%at)) error stop 71
111 if (.not.extends_type_of (var0%at, var%at)) error stop 72
112 if (.not.extends_type_of (var0%at, var0%au2)) error stop 73
113 if (.not.extends_type_of (var0%at2, var0%au2)) error stop 74
114 if (.not.extends_type_of (var0%at, var0%au2)) error stop 75
116 if (same_type_as (var0%at, at)) error stop 76
117 if (same_type_as (var0%at2, at)) error stop 77
118 if (same_type_as (var0%at, at2)) error stop 78
119 if (.not.extends_type_of (var0%at, at)) error stop 79
120 if (.not.extends_type_of (var0%at2, at)) error stop 80
121 if (.not.extends_type_of (var0%at, at2)) error stop 81
123 call c3(var0%au, var0%au2, var0%at, var0%at2)
124 call c4(var0%au, var0%au2, var0%at, var0%at2)
126 contains
127 subroutine c1(x, y, z)
128 class(*) :: x, y(..), z(..)
129 if (same_type_as (x, var0%at)) error stop 82
130 if (same_type_as (y, var0%at)) error stop 83
131 if (same_type_as (z, var0%at)) error stop 84
132 if (same_type_as (x, var%au)) error stop 85
133 if (same_type_as (y, var%au2)) error stop 86
134 if (same_type_as (z, var%au2)) error stop 87
136 if (same_type_as (x, at)) error stop 88
137 if (same_type_as (y, at)) error stop 89
138 if (same_type_as (z, at)) error stop 90
139 if (same_type_as (x, au)) error stop 91
140 if (same_type_as (y, au2)) error stop 92
141 if (same_type_as (z, au2)) error stop 93
144 subroutine c2(x, y, z)
145 class(*) :: x, y(..), z(..)
146 if (.not.same_type_as (x, var0%at)) error stop 94
147 if (.not.same_type_as (y, var0%at)) error stop 95
148 if (.not.same_type_as (z, var0%at)) error stop 96
149 if (.not.extends_type_of (x, var0%at)) error stop 97
150 if (.not.extends_type_of (y, var0%at)) error stop 98
151 if (.not.extends_type_of (z, var0%at)) error stop 99
152 if (same_type_as (x, var%au)) error stop 100
153 if (same_type_as (y, var%au2)) error stop 101
154 if (same_type_as (z, var%au2)) error stop 102
156 if (.not.same_type_as (x, at)) error stop 103
157 if (.not.same_type_as (y, at)) error stop 104
158 if (.not.same_type_as (z, at)) error stop 105
159 if (.not.extends_type_of (x, at)) error stop 106
160 if (.not.extends_type_of (y, at)) error stop 107
161 if (.not.extends_type_of (z, at)) error stop 108
162 if (same_type_as (x, au)) error stop 109
163 if (same_type_as (y, au2)) error stop 110
164 if (same_type_as (z, au2)) error stop 111
167 subroutine c3(mau, mau2, mat, mat2)
168 class(*) :: mau, mau2(:,:), mat, mat2(:,:)
170 if (.not.same_type_as (mau, var%at)) error stop 112
171 if (.not.same_type_as (mau2, var%at)) error stop 113
172 if (.not.same_type_as (mau, var%at)) error stop 114
173 if (.not.same_type_as (mau, var0%au2)) error stop 115
174 if (.not.same_type_as (mau2, var0%au2)) error stop 116
175 if (.not.same_type_as (mau, var0%au2)) error stop 117
176 if (.not.extends_type_of (mau, var%at)) error stop 118
177 if (.not.extends_type_of (mau2, var%at)) error stop 119
178 if (.not.extends_type_of (mau, var%at)) error stop 120
179 if (.not.extends_type_of (mau, var0%au2)) error stop 121
180 if (.not.extends_type_of (mau2, var0%au2)) error stop 122
181 if (.not.extends_type_of (mau, var0%au2)) error stop 123
183 if (.not.same_type_as (mau, at)) error stop 124
184 if (.not.same_type_as (mau2, at)) error stop 125
185 if (.not.same_type_as (mau, at2)) error stop 126
186 if (.not.extends_type_of (mau, at)) error stop 127
187 if (.not.extends_type_of (mau2, at)) error stop 128
188 if (.not.extends_type_of (mau, at2)) error stop 129
190 if (same_type_as (mat, var%at)) error stop 130
191 if (same_type_as (mat2, var%at)) error stop 131
192 if (same_type_as (mat, var%at)) error stop 132
193 if (same_type_as (mat, var0%au2)) error stop 133
194 if (same_type_as (mat2, var0%au2)) error stop 134
195 if (same_type_as (mat, var0%au2)) error stop 135
196 if (.not.extends_type_of (mat, var%at)) error stop 136
197 if (.not.extends_type_of (mat2, var%at)) error stop 137
198 if (.not.extends_type_of (mat, var%at)) error stop 138
199 if (.not.extends_type_of (mat, var0%au2)) error stop 139
200 if (.not.extends_type_of (mat2, var0%au2)) error stop 140
201 if (.not.extends_type_of (mat, var0%au2)) error stop 141
203 if (same_type_as (mat, at)) error stop 142
204 if (same_type_as (mat2, at)) error stop 143
205 if (same_type_as (mat, at2)) error stop 144
206 if (.not.extends_type_of (mat, at)) error stop 145
207 if (.not.extends_type_of (mat2, at)) error stop 147
208 if (.not.extends_type_of (mat, at2)) error stop 148
211 subroutine c4(mau, mau2, mat, mat2)
212 class(*) :: mau(..), mau2(..), mat(..), mat2(..)
214 if (.not.same_type_as (mau, var%at)) error stop 149
215 if (.not.same_type_as (mau2, var%at)) error stop 150
216 if (.not.same_type_as (mau, var%at)) error stop 151
217 if (.not.same_type_as (mau, var0%au2)) error stop 152
218 if (.not.same_type_as (mau2, var0%au2)) error stop 153
219 if (.not.same_type_as (mau, var0%au2)) error stop 154
220 if (.not.extends_type_of (mau, var%at)) error stop 155
221 if (.not.extends_type_of (mau2, var%at)) error stop 156
222 if (.not.extends_type_of (mau, var%at)) error stop 157
223 if (.not.extends_type_of (mau, var0%au2)) error stop 158
224 if (.not.extends_type_of (mau2, var0%au2)) error stop 159
225 if (.not.extends_type_of (mau, var0%au2)) error stop 160
227 if (.not.same_type_as (mau, at)) error stop 161
228 if (.not.same_type_as (mau2, at)) error stop 162
229 if (.not.same_type_as (mau, at2)) error stop 163
230 if (.not.extends_type_of (mau, at)) error stop 164
231 if (.not.extends_type_of (mau2, at)) error stop 165
232 if (.not.extends_type_of (mau, at2)) error stop 166
234 if (same_type_as (mat, var%at)) error stop 167
235 if (same_type_as (mat2, var%at)) error stop 168
236 if (same_type_as (mat, var%at)) error stop 169
237 if (same_type_as (mat, var0%au2)) error stop 170
238 if (same_type_as (mat2, var0%au2)) error stop 171
239 if (same_type_as (mat, var0%au2)) error stop 172
240 if (.not.extends_type_of (mat, var%at)) error stop 173
241 if (.not.extends_type_of (mat2, var%at)) error stop 174
242 if (.not.extends_type_of (mat, var%at)) error stop 175
243 if (.not.extends_type_of (mat, var0%au2)) error stop 176
244 if (.not.extends_type_of (mat2, var0%au2)) error stop 178
245 if (.not.extends_type_of (mat, var0%au2)) error stop 179
247 if (same_type_as (mat, at)) error stop 180
248 if (same_type_as (mat2, at)) error stop 181
249 if (same_type_as (mat, at2)) error stop 182
250 if (.not.extends_type_of (mat, at)) error stop 183
251 if (.not.extends_type_of (mat2, at)) error stop 184
252 if (.not.extends_type_of (mat, at2)) error stop 185