[Bug fortran/45197] New: [F2008] Allow IMPURE elemental procedures
domob at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Aug 5 15:02:00 GMT 2010
In Fortran 2008, an ELEMENTAL procedure needs not necessarily be PURE.
Procedures can now be specified to be IMPURE, and if this is applied to an
ELEMENTAL procedure it is not automatically PURE as it otherwise is.
For instance, the following code will fill b(n) with cumulative sum of elements
in array element order and thus print (/ 1, 3, 6, 10, 15 /):
PROGRAM main
IMPLICIT NONE
INTEGER, PARAMETER :: n = 5
INTEGER :: i
REAL :: a(n), b(n), s
a = (/ (i, i = 1, n) /)
s = 0.0
b = accumulate (a, s)
PRINT *, b
CONTAINS
IMPURE ELEMENTAL FUNCTION accumulate (a, s)
REAL, INTENT(IN) :: a
REAL, INTENT(INOUT) :: s
REAL :: accumulate
s = s + a
accumulate = s
END FUNCTION accumulate
END PROGRAM main
--
Summary: [F2008] Allow IMPURE elemental procedures
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: domob at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45197
More information about the Gcc-bugs
mailing list