diff options
Diffstat (limited to 'gcc/testsuite/gfortran.dg/extends_9.f03')
-rw-r--r-- | gcc/testsuite/gfortran.dg/extends_9.f03 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/extends_9.f03 b/gcc/testsuite/gfortran.dg/extends_9.f03 new file mode 100644 index 000000000..f59b97396 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/extends_9.f03 @@ -0,0 +1,36 @@ +! { dg-do compile } +! +! PR42257: [OOP] Compiler segmentation fault due missing public statement +! +! Contributed by Oystein Olsen <oystein.olsen@astro.uio.no> + +MODULE run_example_fortran03 + IMPLICIT NONE + PRIVATE + PUBLIC :: epoch + + INTEGER, PARAMETER :: I4B = SELECTED_INT_KIND(9) + INTEGER, PARAMETER :: DP = SELECTED_REAL_KIND(15,307) + + TYPE epoch + INTEGER(I4B) :: i = 2451545 + REAL(DP) :: f = 0.5_DP + END TYPE + + TYPE, EXTENDS(epoch) :: time + REAL(DP) :: t = 0.0_DP + END TYPE +END MODULE + + + USE run_example_fortran03 + IMPLICIT NONE + + CLASS(epoch), ALLOCATABLE :: e4 + + ALLOCATE(epoch::e4) + WRITE(*,*) e4%i, e4%f + +END + +! { dg-final { cleanup-modules "run_example_fortran03" } } |