public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/32634]  New: renamed, use associated generic interface rejected
@ 2007-07-05 15:21 pault at gcc dot gnu dot org
  2007-07-05 15:24 ` [Bug fortran/32634] " pault at gcc dot gnu dot org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: pault at gcc dot gnu dot org @ 2007-07-05 15:21 UTC (permalink / raw)
  To: gcc-bugs

The code below incorrectly gives the error, as reported by Salvatore Filippone:

  Call foo_pwrk(pr,p,f,cd,info,work=aux)
                                       1
Error: There is no specific subroutine for the generic 'bar_pwrk' at (1)

Not only does it look correct but other compilers handle it OK.  module.c is
not finding the "true name" symbol, even though it has been created with the
"use name" symtree. A quick inspection of the .mod file reveals that the
interface is given the true name, which simply is not findable by read_module.

Paul


module foo_base_mod


  type foo_dmt
    real(kind(1.d0)), allocatable  :: rv(:)
    integer, allocatable :: iv1(:), iv2(:)
  end type foo_dmt
  type foo_zmt
    complex(kind(1.d0)), allocatable  :: rv(:)
    integer, allocatable  :: iv1(:), iv2(:)
  end type foo_zmt


  type foo_cdt
     integer, allocatable :: md(:)
     integer, allocatable :: hi(:), ei(:)
  end type foo_cdt


end module foo_base_mod

module bar_prt

  use foo_base_mod, only : foo_dmt, foo_zmt, foo_cdt

  type bar_dbprt
    type(foo_dmt), allocatable :: av(:) 
    real(kind(1.d0)), allocatable      :: d(:)  
    type(foo_cdt)                :: cd 
  end type bar_dbprt


  type bar_dprt
    type(bar_dbprt), allocatable  :: bpv(:) 
  end type bar_dprt

  type bar_zbprt
    type(foo_zmt), allocatable :: av(:) 
    complex(kind(1.d0)), allocatable   :: d(:)  
    type(foo_cdt)                :: cd 
  end type bar_zbprt

  type bar_zprt
    type(bar_zbprt), allocatable  :: bpv(:) 
  end type bar_zprt


end module bar_prt

module bar_pr_mod
  use bar_prt

  interface bar_pwrk
    subroutine bar_dppwrk(pr,x,y,cd,info,trans,work)
      use foo_base_mod
      use bar_prt
      type(foo_cdt),intent(in)    :: cd
      type(bar_dprt), intent(in)  :: pr
      real(kind(0.d0)),intent(inout)    :: x(:), y(:)
      integer, intent(out)              :: info
      character(len=1), optional        :: trans
      real(kind(0.d0)),intent(inout), optional, target :: work(:)
    end subroutine bar_dppwrk
    subroutine bar_zppwrk(pr,x,y,cd,info,trans,work)
      use foo_base_mod
      use bar_prt
      type(foo_cdt),intent(in)    :: cd
      type(bar_zprt), intent(in)  :: pr
      complex(kind(0.d0)),intent(inout) :: x(:), y(:)
      integer, intent(out)              :: info
      character(len=1), optional        :: trans
      complex(kind(0.d0)),intent(inout), optional, target :: work(:)
    end subroutine bar_zppwrk
  end interface

end module bar_pr_mod


module foo_pr_mod

  use bar_prt, &
       & foo_dbprt  => bar_dbprt,&
       & foo_zbprt  => bar_zbprt,&
       & foo_dprt   => bar_dprt,&
       & foo_zprt   => bar_zprt 

  use bar_pr_mod, &
       & foo_pwrk  => bar_pwrk


end module foo_pr_mod


Subroutine foo_sub(a,pr,b,x,eps,cd,info)
  use foo_base_mod
  use foo_pr_mod
  Implicit None
!!$  parameters 
  Type(foo_dmt), Intent(in)  :: a
  Type(foo_dprt), Intent(in)   :: pr 
  Type(foo_cdt), Intent(in)    :: cd
  Real(Kind(1.d0)), Intent(in)       :: b(:)
  Real(Kind(1.d0)), Intent(inout)    :: x(:)
  Real(Kind(1.d0)), Intent(in)       :: eps
  integer, intent(out)               :: info

!!$   Local data
  Real(Kind(1.d0)), allocatable, target   :: aux(:),wwrk(:,:)
  Real(Kind(1.d0)), allocatable   :: p(:), f(:)

  info = 0

  Call foo_pwrk(pr,p,f,cd,info,work=aux)

  return

End Subroutine foo_sub


-- 
           Summary: renamed, use associated generic interface rejected
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: pault at gcc dot gnu dot org
        ReportedBy: pault at gcc dot gnu dot org


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


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2007-07-12 20:27 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-07-05 15:21 [Bug fortran/32634] New: renamed, use associated generic interface rejected pault at gcc dot gnu dot org
2007-07-05 15:24 ` [Bug fortran/32634] " pault at gcc dot gnu dot org
2007-07-06 11:20 ` patchapp at dberlin dot org
2007-07-10  5:11 ` pault at gcc dot gnu dot org
2007-07-10  5:13 ` pault at gcc dot gnu dot org
2007-07-12  6:31 ` dfranke at gcc dot gnu dot org
2007-07-12  6:35 ` dfranke at gcc dot gnu dot org
2007-07-12 20:05 ` pault at gcc dot gnu dot org
2007-07-12 20:27 ` pault at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).