diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/array_function_4.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/array_function_4.f90 | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/array_function_4.f90 b/gcc/testsuite/gfortran.dg/array_function_4.f90 new file mode 100644 index 000000000..c7e7d6e57 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/array_function_4.f90 @@ -0,0 +1,29 @@ +! { dg-do compile } + +! PR fortran/37411 +! This used to cause an ICE because of a missing array spec after interface +! mapping. + +! Contributed by Kristjan Jonasson <jonasson@hi.is> + +MODULE B1 +CONTAINS + subroutine sub() + integer :: x(1) + character(3) :: st + st = fun(x) + end subroutine sub + + function fun(x) result(st) + integer, intent(in) :: x(1) + character(lenf(x)) :: st + st = 'abc' + end function fun + + pure integer function lenf(x) + integer, intent(in) :: x(1) + lenf = x(1) + end function lenf +END MODULE B1 + +! { dg-final { cleanup-modules "B1" } } |