$> cat cloc.f90
USE ISO_C_BINDING, ONLY: C_PTR, C_LOC
CONTAINS
  PURE SUBROUTINE F(x)
    INTEGER, INTENT(in), TARGET :: x
    TYPE(C_PTR) :: px
    px = C_LOC(x)
  END SUBROUTINE
END

$> gfortran-svn -Wimplicit-interface cloc.f90
cloc.f90:6.9:

    px = C_LOC(x)
        1
Warning: Procedure 'c_loc' called with an implicit interface at (1)
cloc.f90:6.9:

    px = C_LOC(x)
        1
Error: Function reference to 'c_loc' at (1) is to a non-PURE procedure within a
PURE procedure

$> gfortran-svn --version
GNU Fortran (GCC) 4.4.0 20081120 (experimental)


To my knowledge, all intrinsics have an explicit interface and are PURE by
default?!


-- 
           Summary: C_LOC intrinsic non-pure and without explicit interface
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 20585,32630
             nThis:


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

Reply via email to