diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/generic_21.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/generic_21.f90 | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/generic_21.f90 b/gcc/testsuite/gfortran.dg/generic_21.f90 new file mode 100644 index 000000000..c651e6394 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/generic_21.f90 @@ -0,0 +1,33 @@ +! { dg-do compile } +! +! PR fortran/42858 +! +! Contributed by Harald Anlauf +! +module gfcbug102 + implicit none + type t_vector_segm + real ,pointer :: x(:) => NULL() + end type t_vector_segm + + type t_vector + integer :: n_s = 0 + type (t_vector_segm) ,pointer :: s (:) => NULL() + end type t_vector + + interface sqrt + module procedure sqrt_vector + end interface sqrt + +contains + function sqrt_vector (x) result (y) + type (t_vector) :: y + type (t_vector) ,intent(in) :: x + integer :: i + do i = 1, y% n_s + y% s(i)% x = sqrt (x% s(i)% x) + end do + end function sqrt_vector +end module gfcbug102 + +! { dg-final { cleanup-modules "gfcbug102" } } |