583 lines · plain
1! RUN: %python %S/test_errors.py %s %flang_fc1 -pedantic -Werror2! Tests the checking of storage sequence argument association (F'2023 15.2.5.12)3module nonchar4 contains5 subroutine scalar(a)6 real a7 end8 subroutine explicit1(a)9 real a(2)10 end11 subroutine explicit2(a)12 real a(2,2)13 end14 subroutine assumedSize1(a)15 real a(*)16 end17 subroutine assumedSize2(a)18 real a(2,*)19 end20 subroutine assumedShape1(a)21 real a(:)22 end23 subroutine assumedShape2(a)24 real a(:,:)25 end26 subroutine assumedRank(a)27 real a(..)28 end29 subroutine allocatable0(a)30 real, allocatable :: a31 end32 subroutine allocatable1(a)33 real, allocatable :: a(:)34 end35 subroutine allocatable2(a)36 real, allocatable :: a(:,:)37 end38 subroutine pointer0(a)39 real, intent(in), pointer :: a40 end41 subroutine pointer1(a)42 real, intent(in), pointer :: a(:)43 end44 subroutine pointer2(a)45 real, intent(in), pointer :: a(:,:)46 end47 subroutine coarray0(a)48 real a[*]49 end50 51 subroutine test52 real, target :: scalar053 real, target :: vector1(1), vector2(2), vector4(4)54 real, target :: matrix11(1,1), matrix12(1,2), matrix22(2,2)55 real, allocatable :: alloScalar, alloVector(:), alloMatrix(:,:)56 57 call scalar(scalar0)58 !ERROR: Rank of dummy argument is 0, but actual argument has rank 159 call scalar(vector1)60 call scalar(vector1(1))61 62 !ERROR: Whole scalar actual argument may not be associated with a dummy argument 'a=' array63 call explicit1(scalar0)64 !ERROR: Actual argument array has fewer elements (1) than dummy argument 'a=' array (2)65 call explicit1(vector1)66 call explicit1(vector2)67 call explicit1(vector4)68 !ERROR: Actual argument has fewer elements remaining in storage sequence (1) than dummy argument 'a=' array (2)69 call explicit1(vector2(2))70 call explicit1(vector4(3))71 !ERROR: Actual argument has fewer elements remaining in storage sequence (1) than dummy argument 'a=' array (2)72 call explicit1(vector4(4))73 !ERROR: Actual argument array has fewer elements (1) than dummy argument 'a=' array (2)74 call explicit1(matrix11)75 76 !ERROR: Whole scalar actual argument may not be associated with a dummy argument 'a=' array77 call explicit2(scalar0)78 !ERROR: Actual argument array has fewer elements (1) than dummy argument 'a=' array (4)79 call explicit2(vector1)80 !ERROR: Actual argument array has fewer elements (2) than dummy argument 'a=' array (4)81 call explicit2(vector2)82 call explicit2(vector4)83 !ERROR: Actual argument has fewer elements remaining in storage sequence (1) than dummy argument 'a=' array (4)84 call explicit2(vector2(2))85 !ERROR: Actual argument has fewer elements remaining in storage sequence (3) than dummy argument 'a=' array (4)86 call explicit2(vector4(2))87 call explicit2(vector4(1))88 !ERROR: Actual argument array has fewer elements (1) than dummy argument 'a=' array (4)89 call explicit2(matrix11)90 !ERROR: Actual argument array has fewer elements (2) than dummy argument 'a=' array (4)91 call explicit2(matrix12)92 call explicit2(matrix22)93 call explicit2(matrix22(1,1))94 !ERROR: Actual argument has fewer elements remaining in storage sequence (3) than dummy argument 'a=' array (4)95 call explicit2(matrix22(2,1))96 97 !ERROR: Whole scalar actual argument may not be associated with a dummy argument 'a=' array98 call assumedSize1(scalar0)99 call assumedSize1(vector1)100 call assumedSize1(vector2)101 call assumedSize1(vector4)102 call assumedSize1(vector2(2))103 call assumedSize1(vector4(2))104 call assumedSize1(vector4(1))105 call assumedSize1(matrix11)106 call assumedSize1(matrix12)107 call assumedSize1(matrix22)108 call assumedSize1(matrix22(1,1))109 call assumedSize1(matrix22(2,1))110 111 !ERROR: Whole scalar actual argument may not be associated with a dummy argument 'a=' array112 call assumedSize2(scalar0)113 call assumedSize2(vector1)114 call assumedSize2(vector2)115 call assumedSize2(vector4)116 call assumedSize2(vector2(2))117 call assumedSize2(vector4(2))118 call assumedSize2(vector4(1))119 call assumedSize2(matrix11)120 call assumedSize2(matrix12)121 call assumedSize2(matrix22)122 call assumedSize2(matrix22(1,1))123 call assumedSize2(matrix22(2,1))124 125 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='126 call assumedShape1(scalar0)127 call assumedShape1(vector1)128 call assumedShape1(vector2)129 call assumedShape1(vector4)130 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='131 call assumedShape1(vector2(2))132 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2133 call assumedShape1(matrix11)134 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2135 call assumedShape1(matrix12)136 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2137 call assumedShape1(matrix22)138 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='139 call assumedShape1(matrix22(1,1))140 141 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='142 call assumedShape2(scalar0)143 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1144 call assumedShape2(vector1)145 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1146 call assumedShape2(vector2)147 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1148 call assumedShape2(vector4)149 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='150 call assumedShape2(vector2(2))151 call assumedShape2(matrix11)152 call assumedShape2(matrix12)153 call assumedShape2(matrix22)154 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='155 call assumedShape2(matrix22(1,1))156 157 call assumedRank(scalar0)158 call assumedRank(vector1)159 call assumedRank(vector1(1))160 call assumedRank(matrix11)161 call assumedRank(matrix11(1,1))162 163 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument164 call allocatable0(scalar0)165 call allocatable0(alloScalar)166 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1167 call allocatable0(alloVector)168 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument169 call allocatable0(alloVector(1))170 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2171 call allocatable0(alloMatrix)172 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument173 call allocatable0(alloMatrix(1,1))174 175 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0176 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument177 call allocatable1(scalar0)178 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0179 call allocatable1(alloScalar)180 call allocatable1(alloVector)181 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0182 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument183 call allocatable1(alloVector(1))184 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2185 call allocatable1(alloMatrix)186 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0187 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument188 call allocatable1(alloMatrix(1,1))189 190 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0191 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument192 call allocatable2(scalar0)193 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0194 call allocatable2(alloScalar)195 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1196 call allocatable2(alloVector)197 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0198 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument199 call allocatable2(alloVector(1))200 call allocatable2(alloMatrix)201 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0202 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument203 call allocatable2(alloMatrix(1,1))204 205 call pointer0(scalar0)206 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1207 !ERROR: Pointer has rank 0 but target has rank 1208 call pointer0(vector1)209 call pointer0(vector1(1))210 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2211 !ERROR: Pointer has rank 0 but target has rank 2212 call pointer0(matrix11)213 call pointer0(matrix11(1,1))214 215 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0216 !ERROR: Pointer has rank 1 but target has rank 0217 call pointer1(scalar0)218 call pointer1(vector1)219 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0220 !ERROR: Pointer has rank 1 but target has rank 0221 call pointer1(vector1(1))222 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2223 !ERROR: Pointer has rank 1 but target has rank 2224 call pointer1(matrix11)225 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0226 !ERROR: Pointer has rank 1 but target has rank 0227 call pointer1(matrix11(1,1))228 229 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0230 !ERROR: Pointer has rank 2 but target has rank 0231 call pointer2(scalar0)232 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1233 !ERROR: Pointer has rank 2 but target has rank 1234 call pointer2(vector1)235 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0236 !ERROR: Pointer has rank 2 but target has rank 0237 call pointer2(vector1(1))238 call pointer2(matrix11)239 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0240 !ERROR: Pointer has rank 2 but target has rank 0241 call pointer2(matrix11(1,1))242 243 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray244 call coarray0(scalar0)245 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1246 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray247 call coarray0(vector1)248 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray249 call coarray0(vector1(1))250 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2251 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray252 call coarray0(matrix11)253 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray254 call coarray0(matrix11(1,1))255 end256end257 258module char259 contains260 subroutine scalar(a)261 character(2) a262 end263 subroutine explicit1(a)264 character(2) a(2)265 end266 subroutine explicit2(a)267 character(2) a(2,2)268 end269 subroutine assumedSize1(a)270 character(2) a(*)271 end272 subroutine assumedSize2(a)273 character(2) a(2,*)274 end275 subroutine assumedShape1(a)276 character(2) a(:)277 end278 subroutine assumedShape2(a)279 character(2) a(:,:)280 end281 subroutine assumedRank(a)282 character(2) a(..)283 end284 subroutine allocatable0(a)285 character(2), allocatable :: a286 end287 subroutine allocatable1(a)288 character(2), allocatable :: a(:)289 end290 subroutine allocatable2(a)291 character(2), allocatable :: a(:,:)292 end293 subroutine pointer0(a)294 character(2), intent(in), pointer :: a295 end296 subroutine pointer1(a)297 character(2), intent(in), pointer :: a(:)298 end299 subroutine pointer2(a)300 character(2), intent(in), pointer :: a(:,:)301 end302 subroutine coarray0(a)303 character(2) a[*]304 end305 306 subroutine test307 character(2), target :: scalar0308 character(2), target :: vector1(1), vector2(2), vector4(4)309 character(2), target :: matrix11(1,1), matrix12(1,2), matrix22(2,2)310 character(2), allocatable :: alloScalar, alloVector(:), alloMatrix(:,:)311 312 call scalar(scalar0)313 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1314 call scalar(vector1)315 call scalar(vector1(1))316 317 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (4)318 call explicit1(scalar0)319 !ERROR: Actual argument array has fewer characters (2) than dummy argument 'a=' array (4)320 call explicit1(vector1)321 call explicit1(vector2)322 call explicit1(vector4)323 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (4)324 call explicit1(vector2(2))325 !ERROR: Actual argument has fewer characters remaining in storage sequence (3) than dummy argument 'a=' (4)326 call explicit1(vector2(1)(2:2))327 call explicit1(vector4(3))328 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (4)329 call explicit1(vector4(4))330 !ERROR: Actual argument array has fewer characters (2) than dummy argument 'a=' array (4)331 call explicit1(matrix11)332 call explicit1(matrix12)333 call explicit1(matrix12(1,1))334 !ERROR: Actual argument has fewer characters remaining in storage sequence (3) than dummy argument 'a=' (4)335 call explicit1(matrix12(1,1)(2:2))336 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (4)337 call explicit1(matrix12(1,2))338 339 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (8)340 call explicit2(scalar0)341 !ERROR: Actual argument array has fewer characters (2) than dummy argument 'a=' array (8)342 call explicit2(vector1)343 !ERROR: Actual argument array has fewer characters (4) than dummy argument 'a=' array (8)344 call explicit2(vector2)345 call explicit2(vector4)346 !ERROR: Actual argument has fewer characters remaining in storage sequence (2) than dummy argument 'a=' (8)347 call explicit2(vector2(2))348 !ERROR: Actual argument has fewer characters remaining in storage sequence (6) than dummy argument 'a=' (8)349 call explicit2(vector4(2))350 call explicit2(vector4(1))351 !ERROR: Actual argument array has fewer characters (2) than dummy argument 'a=' array (8)352 call explicit2(matrix11)353 !ERROR: Actual argument array has fewer characters (4) than dummy argument 'a=' array (8)354 call explicit2(matrix12)355 call explicit2(matrix22)356 call explicit2(matrix22(1,1))357 !ERROR: Actual argument has fewer characters remaining in storage sequence (7) than dummy argument 'a=' (8)358 call explicit2(matrix22(1,1)(2:2))359 !ERROR: Actual argument has fewer characters remaining in storage sequence (6) than dummy argument 'a=' (8)360 call explicit2(matrix22(2,1))361 362 call assumedSize1(scalar0)363 call assumedSize1(vector1)364 call assumedSize1(vector2)365 call assumedSize1(vector4)366 call assumedSize1(vector2(2))367 call assumedSize1(vector4(2))368 call assumedSize1(vector4(1))369 call assumedSize1(matrix11)370 call assumedSize1(matrix12)371 call assumedSize1(matrix22)372 call assumedSize1(matrix22(1,1))373 call assumedSize1(matrix22(2,1))374 375 call assumedSize2(scalar0)376 call assumedSize2(vector1)377 call assumedSize2(vector2)378 call assumedSize2(vector4)379 call assumedSize2(vector2(2))380 call assumedSize2(vector4(2))381 call assumedSize2(vector4(1))382 call assumedSize2(matrix11)383 call assumedSize2(matrix12)384 call assumedSize2(matrix22)385 call assumedSize2(matrix22(1,1))386 call assumedSize2(matrix22(2,1))387 388 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='389 call assumedShape1(scalar0)390 call assumedShape1(vector1)391 call assumedShape1(vector2)392 call assumedShape1(vector4)393 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='394 call assumedShape1(vector2(2))395 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2396 call assumedShape1(matrix11)397 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2398 call assumedShape1(matrix12)399 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2400 call assumedShape1(matrix22)401 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='402 call assumedShape1(matrix22(1,1))403 404 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='405 call assumedShape2(scalar0)406 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1407 call assumedShape2(vector1)408 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1409 call assumedShape2(vector2)410 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1411 call assumedShape2(vector4)412 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='413 call assumedShape2(vector2(2))414 call assumedShape2(matrix11)415 call assumedShape2(matrix12)416 call assumedShape2(matrix22)417 !ERROR: Scalar actual argument may not be associated with assumed-shape dummy argument 'a='418 call assumedShape2(matrix22(1,1))419 420 call assumedRank(scalar0)421 call assumedRank(vector1)422 call assumedRank(vector1(1))423 call assumedRank(matrix11)424 call assumedRank(matrix11(1,1))425 426 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument427 call allocatable0(scalar0)428 call allocatable0(alloScalar)429 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1430 call allocatable0(alloVector)431 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument432 call allocatable0(alloVector(1))433 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2434 call allocatable0(alloMatrix)435 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument436 call allocatable0(alloMatrix(1,1))437 438 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0439 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument440 call allocatable1(scalar0)441 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0442 call allocatable1(alloScalar)443 call allocatable1(alloVector)444 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0445 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument446 call allocatable1(alloVector(1))447 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2448 call allocatable1(alloMatrix)449 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0450 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument451 call allocatable1(alloMatrix(1,1))452 453 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0454 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument455 call allocatable2(scalar0)456 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0457 call allocatable2(alloScalar)458 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1459 call allocatable2(alloVector)460 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0461 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument462 call allocatable2(alloVector(1))463 call allocatable2(alloMatrix)464 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0465 !ERROR: ALLOCATABLE dummy argument 'a=' must be associated with an ALLOCATABLE actual argument466 call allocatable2(alloMatrix(1,1))467 468 call pointer0(scalar0)469 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1470 !ERROR: Pointer has rank 0 but target has rank 1471 call pointer0(vector1)472 call pointer0(vector1(1))473 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2474 !ERROR: Pointer has rank 0 but target has rank 2475 call pointer0(matrix11)476 call pointer0(matrix11(1,1))477 478 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0479 !ERROR: Pointer has rank 1 but target has rank 0480 call pointer1(scalar0)481 call pointer1(vector1)482 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0483 !ERROR: Pointer has rank 1 but target has rank 0484 call pointer1(vector1(1))485 !ERROR: Rank of dummy argument is 1, but actual argument has rank 2486 !ERROR: Pointer has rank 1 but target has rank 2487 call pointer1(matrix11)488 !ERROR: Rank of dummy argument is 1, but actual argument has rank 0489 !ERROR: Pointer has rank 1 but target has rank 0490 call pointer1(matrix11(1,1))491 492 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0493 !ERROR: Pointer has rank 2 but target has rank 0494 call pointer2(scalar0)495 !ERROR: Rank of dummy argument is 2, but actual argument has rank 1496 !ERROR: Pointer has rank 2 but target has rank 1497 call pointer2(vector1)498 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0499 !ERROR: Pointer has rank 2 but target has rank 0500 call pointer2(vector1(1))501 call pointer2(matrix11)502 !ERROR: Rank of dummy argument is 2, but actual argument has rank 0503 !ERROR: Pointer has rank 2 but target has rank 0504 call pointer2(matrix11(1,1))505 506 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray507 call coarray0(scalar0)508 !ERROR: Rank of dummy argument is 0, but actual argument has rank 1509 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray510 call coarray0(vector1)511 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray512 call coarray0(vector1(1))513 !ERROR: Rank of dummy argument is 0, but actual argument has rank 2514 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray515 call coarray0(matrix11)516 !ERROR: Actual argument associated with coarray dummy argument 'a=' must be a coarray517 call coarray0(matrix11(1,1))518 519 !WARNING: Actual argument variable length '1' is less than expected length '2' [-Wshort-character-actual]520 call scalar(scalar0(1:1))521 !WARNING: Actual argument expression length '1' is less than expected length '2' [-Wshort-character-actual]522 call scalar('a')523 end524end525 526subroutine bug114080(arg, contigArg)527 character(*) :: arg(..)528 character(*), contiguous :: contigArg(..)529 interface530 subroutine sub1(arg1) bind(c)531 character(1) :: arg1(2,4)532 end subroutine533 end interface534 !ERROR: Assumed-rank character array may not be associated with a dummy argument that is not assumed-rank535 call sub1(arg)536 !ERROR: Assumed-rank character array may not be associated with a dummy argument that is not assumed-rank537 call sub1(contigArg)538 !ERROR: Assumed-rank character array may not be associated with a dummy argument that is not assumed-rank539 call sub2(arg)540 !ERROR: Assumed-rank character array may not be associated with a dummy argument that is not assumed-rank541 call sub2(contigArg)542 contains543 subroutine sub2(arg2)544 character(*) :: arg2(10)545 end subroutine sub2546end subroutine547 548subroutine bug123807549 interface550 subroutine test(s)551 character(5), intent(inout) :: s(5)552 end553 end interface554 character(30) :: s30a555 character(30), allocatable :: s30b556 character(6) :: s30c(5)557 character(24) :: s24a558 character(24), allocatable :: s24b559 character(4) :: s24c(6)560 allocate(s30b)561 allocate(s24b)562 call test(s30a)563 call test(s30a(6:))564 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)565 call test(s30a(7:))566 call test(s30b)567 call test(s30b(6:))568 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)569 call test(s30b(7:))570 call test(s30c)571 call test(s30c(1)(6:))572 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)573 call test(s30c(2))574 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)575 call test(s30c(2)(1:))576 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)577 call test(s24a)578 !ERROR: Actual argument has fewer characters remaining in storage sequence (24) than dummy argument 's=' (25)579 call test(s24b)580 !ERROR: Actual argument array has fewer characters (24) than dummy argument 's=' array (25)581 call test(s24c)582end583