1! { dg-do compile } 2! { dg-options "-fdump-tree-original" } 3 4! PR fortran/36403 5! Check that string lengths of optional arguments are added to the library-call 6! even if those arguments are missing. 7 8PROGRAM main 9 IMPLICIT NONE 10 11 CHARACTER(len=1) :: vect(4) 12 CHARACTER(len=1) :: matrix(2, 2) 13 14 matrix(1, 1) = "" 15 matrix(2, 1) = "a" 16 matrix(1, 2) = "b" 17 matrix(2, 2) = "" 18 vect = (/ "w", "x", "y", "z" /) 19 20 ! Call the affected intrinsics 21 vect = EOSHIFT (vect, 2) 22 vect = PACK (matrix, matrix /= "") 23 matrix = RESHAPE (vect, (/ 2, 2 /)) 24 25END PROGRAM main 26 27! All library function should be called with *two* trailing arguments "1" for 28! the string lengths of both the main array and the optional argument: 29! { dg-final { scan-tree-dump "_eoshift\[0-9_\]+char \\(\[&a-zA-Z0-9._, \]+, 1, 0\\)" "original" } } 30! { dg-final { scan-tree-dump "_reshape\[0-9_\]+char \\(\[&a-zA-Z0-9._, \]+, 1, 0\\)" "original" } } 31! { dg-final { scan-tree-dump "_pack\[0-9_\]+char \\(\[&a-zA-Z0-9._, \]+, 1, 0\\)" "original" } } 32! { dg-final { cleanup-tree-dump "original" } } 33