diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/constructor_3.f90')
-rw-r--r-- | gcc/testsuite/gfortran.dg/constructor_3.f90 | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/constructor_3.f90 b/gcc/testsuite/gfortran.dg/constructor_3.f90 new file mode 100644 index 00000000000..4015090bced --- /dev/null +++ b/gcc/testsuite/gfortran.dg/constructor_3.f90 @@ -0,0 +1,47 @@ +! { dg-do run } +! +! PR fortran/39427 +! +! Check constructor functionality. +! +! +module m + interface cons + procedure cons42 + end interface cons +contains + integer function cons42() + cons42 = 42 + end function cons42 +end module m + + +module m2 + type cons + integer :: j = -1 + end type cons + interface cons + procedure consT + end interface cons +contains + type(cons) function consT(k) + integer :: k + consT%j = k**2 + end function consT +end module m2 + + +use m +use m2, only: cons +implicit none +type(cons) :: x +integer :: k +x = cons(3) +k = cons() +if (x%j /= 9) call abort () +if (k /= 42) call abort () +!print *, x%j +!print *, k +end + +! { dg-final { cleanup-modules "m m2" } } |