http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52452
Bug #: 52452
Summary: INTRINSIC cannot be applied to gfortran's ETIME
Classification: Unclassified
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: [email protected]
ReportedBy: [email protected]
[Note for a possible duplicate: This bug may be related to #52333, but in that
one EXTERNAL and explicit INTERFACEs are involved (which is not the case in the
current bug).]
gfortran's ETIME can be used either as a FUNCTION or as a SUBROUTINE.
Explicitly specifying that it is an INTRINSIC name (using an
intrinsic-statement) works fine if the function version is used. But when using
the subroutine version, gfortran 4.6.2 complains:
Consider the following testcase
PROGRAM test_etime
IMPLICIT NONE
INTRINSIC :: etime
REAL(4) :: tarray(1:2)
REAL(4) :: result
CALL etime(tarray, result)
END PROGRAM test_etime
results in
$ gfortran -c test_etime.f90
test_etime.f90:3.22:
INTRINSIC :: etime
1
Error: FUNCTION attribute conflicts with SUBROUTINE attribute in 'etime' at (1)
Removing that line the compilation succeeds (and gfortran appropiately emits a
call to _gfortran_etime_sub). Using the function version works too with or
without an INTRINSIC statement.
[Note: I'm aware, as the documentation clearly states, that both forms cannot
be used in a single program unit. I'm just using one of them at a time]
Maybe it is my fault assuming too liberally the meaning of the INTRINSIC
statement/attribute.
Kind regards,