brintos

brintos / llvm-project-archived public Read only

0
0
Text · 24.2 KiB · 4a00699 Raw
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