2010-11-10 Tobias Burnus <burnus@net-b.de>
PR fortran/46411
* intrinsic.c (gfc_intrinsic_sub_interface): Check for attr.pure
and not for attr.elemental.
* intrinsic.texi (move_alloc): Document as being pure.
2010-11-10 Tobias Burnus <burnus@net-b.de>
PR fortran/46411
* gfortran.dg/intrinsic_7.f90: New.
From-SVN: r166550
+2010-11-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/46411
+ * intrinsic.c (gfc_intrinsic_sub_interface): Check for attr.pure
+ and not for attr.elemental.
+ * intrinsic.texi (move_alloc): Document as being pure.
+
2010-11-10 Tobias Burnus <burnus@net-b.de>
PR fortran/46244
c->resolved_sym->attr.elemental = isym->elemental;
}
- if (gfc_pure (NULL) && !isym->elemental)
+ if (gfc_pure (NULL) && !isym->pure)
{
gfc_error ("Subroutine call to intrinsic '%s' at %L is not PURE", name,
&c->loc);
Fortran 2003 and later
@item @emph{Class}:
-Subroutine
+Pure subroutine
@item @emph{Syntax}:
@code{CALL MOVE_ALLOC(FROM, TO)}
+2010-11-10 Tobias Burnus <burnus@net-b.de>
+
+ PR fortran/46411
+ * gfortran.dg/intrinsic_7.f90: New.
+
2010-11-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* g++.dg/abi/rtti3.C: Scan for .weakext on alpha*-dec-osf*.
--- /dev/null
+! { dg-do compile }
+!
+! PR fortran/46411
+!
+! MOVE_ALLOC and other non-elemental but pure
+! procedures where regarded as impure.
+!
+
+pure subroutine test()
+ integer, allocatable :: a, b
+ allocate(a,b)
+ call move_alloc(a,b)
+end subroutine test