http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52333

             Bug #: 52333
           Summary: Explicit etime interface should work
    Classification: Unclassified
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: pablo...@googlemail.com


gfortran differs from all other compilers I have access to (Intel's, NAG's,
PathScale's, Portland Group's, Sun's and g95) in that it does not accept
defining an explicit interface to the etime intrinsic:

--

$ cat test_etime.f90

PROGRAM test_etime
 IMPLICIT NONE
 REAL x(2)
 print *,etime(x)
END PROGRAM test_etime

$ cat test_etime_iface.f90

PROGRAM test_etime_iface
 IMPLICIT NONE
 REAL x(2)
 INTERFACE
  REAL FUNCTION etime(x)
   REAL,INTENT(inout) :: x(2)
  END FUNCTION etime
 END INTERFACE
 print *,etime(x)
END PROGRAM test_etime_iface

$ echo "NY" ;\
> for c in gfortran ifort nagfor pathf95 pgf95 g95 sunf95 ; do\
>  $c -o t test_etime.f90 >& /dev/null && a=1 || a=0 ;\
>  rm -f t *.o ;\
>  $c -o t test_etime_iface.f90 >& /dev/null && a=${a}1 || a=${a}0 ;\
>  rm -f t *.o ;\
>  echo "$a <- $c" ;\
> done

NY
10 <- gfortran
01 <- ifort
00 <- nagfor
11 <- pathf95
01 <- pgf95
11 <- g95
01 <- sunf95

--

The above table tells us if each compiler succeeded (1) or failed (0) compiling
the code without (N) or with (Y) an explicit etime interface. Without the
explicit interface the outcome is mixed, but every compiler other than gfortran
will successfully compile the code with the explicit interface (if the compiler
provides an etime extension; nagfor doesn't).

The same thing happens if one uses etime as a subroutine (with a second
argument): gfortran is alone in failing to compile the code if there is an
explicit interface. Using etime as a subroutine and not providing an explicit
interface seems to work on all of the above compilers, including gfortran.

This may be true of other extensions or intrinsics - I can run specific tests
with other compilers if this would be helpful.

Reply via email to