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
>
>
>