summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/generic_21.f90
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gfortran.dg/generic_21.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/generic_21.f9033
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" } }