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

Reply via email to