Am 11.01.25 um 07:36 schrieb Steve Kargl: > On Fri, Jan 10, 2025 at 05:19:34PM +0000, Paul Richard Thomas wrote: >> >> As of today, Gerhard Steinmetz has no fewer than 33 regressions to his name >> out of a total of 54 for fortran and libgfortran. It's time that some of >> these bugs are swatted, I think :-) >> > > PR 70949 appears to have been fixed at some point > in the past. The following patch converts Gerhard's > code into testcases. > > diff --git a/gcc/testsuite/gfortran.dg/pr70949_1.f90 > b/gcc/testsuite/gfortran.dg/pr70949_1.f90 > new file mode 100644 > index 00000000000..91cd18069fc > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/pr70949_1.f90 > @@ -0,0 +1,27 @@ > +! > +! { dg-do run}
{ dg-do run } (with trailing space), otherwise this acts as "dg-do compile", I fear. Same for the second test case below. > +! > +program p > + > + type t1 > + end type > + > + type t2 > + type(t1), pointer :: q > + end type > + > + type(t1), pointer :: a > + type(t2) :: c > + > + allocate(a) > + c%q => a > + if (.not. associated(a, f(c))) stop 1 > + > + contains > + > + function f(x) result (z) > + type(t2), intent(in) :: x > + class(t1), pointer :: z > + z => x%q > + end function f > +end > diff --git a/gcc/testsuite/gfortran.dg/pr70949_2.f90 > b/gcc/testsuite/gfortran.dg/pr70949_2.f90 > new file mode 100644 > index 00000000000..eb064b6fa80 > --- /dev/null > +++ b/gcc/testsuite/gfortran.dg/pr70949_2.f90 > @@ -0,0 +1,27 @@ > +! > +! { dg-do run} > +! > +program p > + > + type t1 > + end type > + > + type t2 > + type(t1), pointer :: q > + end type > + > + type(t1), pointer :: a > + type(t2) :: c > + > + allocate(a) > + c%q => a > + if (.not. associated(a, f(c))) stop 1 > + > + contains > + > + function f(x) result (z) > + type(t2), intent(in) :: x > + type(t1), pointer :: z > + z => x%q > + end function f > +end > > >