[EMAIL PROTECTED] cpu2006-465]$ cat foo.f90
module foo
   public    bar_
   interface bar_
      module procedure bar
   end interface
   public    xxx_
   interface xxx_
      module procedure xxx
   end interface
contains
   subroutine xxx(self,z)
      interface
         function self(z) result(res)
            real(kind=kind(1.0d0)), dimension(:) :: z
            real(kind=kind(1.0d0)) :: res
         end function
      end interface
      call bar_(self)
   end subroutine
   subroutine bar(self)
      interface
         function self(z) result(res)
            real(kind=kind(1.0d0)) :: res
         end function
      end interface
   end subroutine
end
[EMAIL PROTECTED] cpu2006-465]$ make
/export/build/gnu/gcc/build-x86_64-linux/gcc/gfortran
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/ -O2 -S foo.f90
 In file foo.f90:18

      call bar_(self)
                    1
Error: Generic subroutine 'bar_' at (1) is not an intrinsic subroutine
make: *** [foo.s] Error 1
[EMAIL PROTECTED] cpu2006-465]$

Intel FORTRAN compiler has no problem. If I remove

            real(kind=kind(1.0d0)), dimension(:) :: z

gfortran can compile it.


-- 
           Summary: FORTRAN compiler won't compile the valid code
           Product: gcc
           Version: 4.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl at lucon dot org


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

Reply via email to