[FORTRAN PATCH] Consider suitable derived types copyable
Paul Thomas
paulthomas2@wanadoo.fr
Thu Jan 18 14:30:00 GMT 2007
Roger,
OK - thanks
Paul
>
> Ok for mainline?
>
>
> 2007-01-17 Roger Sayle <roger@eyesopen.com>
>
> * trans-expr.c (copyable_array_p): Consider user derived type
> without allocatable components to be copyable.
>
> * gfortran.dg/array_memcpy_4.f90: New test case.
>
> Roger
> --
>
> ------------------------------------------------------------------------
>
> Index: trans-expr.c
> ===================================================================
> *** trans-expr.c (revision 120834)
> --- trans-expr.c (working copy)
> *************** copyable_array_p (gfc_expr * expr)
> *** 3815,3820 ****
> --- 3815,3826 ----
> case BT_LOGICAL:
> return true;
>
> + case BT_CHARACTER:
> + return false;
> +
> + case BT_DERIVED:
> + return !expr->ts.derived->attr.alloc_comp;
> +
> default:
> break;
> }
> ------------------------------------------------------------------------
>
> ! { dg-do compile }
> ! { dg-options "-O2 -fdump-tree-original" }
> type t
> logical valid
> integer :: x, y
> end type
> type (t) :: s(5)
> type (t) :: d(5)
>
> d = s
> end
> ! { dg-final { scan-tree-dump-times "d = " 1 "original" } }
> ! { dg-final { cleanup-tree-dump "original" } }
More information about the Fortran
mailing list