This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
procedure versus module name clash
- From: "Paul Richard Thomas" <paul dot richard dot thomas at gmail dot com>
- To: fortran at gcc dot gnu dot org, "Brooks Moses" <bmoses at stanford dot edu>, burnus at net-b dot de
- Date: Fri, 22 Dec 2006 11:38:09 +0100
- Subject: procedure versus module name clash
- Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=gmail.com; h=received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=orT78kyk15aUzlaPeN7jw3/JOFaPT/A1KVTDG5snyCljS4baznEM6eJbk7dN0rkm+Q6RkAjEPKjeyP+xa0KZD3jmg+Ha/iJDYna8LmQMsFGvD4GxaloZzd8U6OaHCcNebl7jBHkyVHxBRjAkv1k/Ef+UwY7r0VxH3X3+yiBuNU0=
Dear All,
I am in the midst of fixing another interface problem - PR20896. My
patch breaks interface_7.f90 by generating an extra error, which I
think is correct. interface_7.f90 is:
! { dg-do compile }
! One of the tests of the patch for PR30068.
! Taken from the fortran 2003 standard C11.2.
!
! The interface is invalid although it is unambiguous because the
! standard explicitly does not require recursion into the formal
! arguments of procedures that themselves are interface arguments.
!
module x
INTERFACE BAD9
SUBROUTINE S9A(X)
REAL :: X
END SUBROUTINE S9A
SUBROUTINE S9B(X)
INTERFACE
FUNCTION X(A)
REAL :: X,A
END FUNCTION X
END INTERFACE
END SUBROUTINE S9B
SUBROUTINE S9C(X)
INTERFACE
FUNCTION X(A)
REAL :: X
INTEGER :: A
END FUNCTION X
END INTERFACE
END SUBROUTINE S9C ! { dg-error "Ambiguous interfaces" }
END INTERFACE BAD9
end module x
! { dg-final { cleanup-modules "x" } }
The patch is picking up the mismatch between module 'x' and function
'x' in the procedure interfaces. I think this is correct and I
propose to change the name of the module. However, I have a niggling
doubt about it and would appreciate your opinions.
Paul