[Bug fortran/36325] New: specific or generic INTERFACE implies the EXTERNAL attribute
jaydub66 at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sun May 25 13:36:00 GMT 2008
I think the following code is invalid:
interface
subroutine foo
end subroutine
end interface
external foo
Because the INTERFACE statement already specifies the EXTERNAL attribute, which
is thus specified twice.
This code *is* actually rejected (as of rev. 135859), but the error message is
completely wrong:
external :: foo
1
Error: EXTERNAL attribute conflicts with SUBROUTINE attribute at (1)
(which it does *not* for this case)
Quoting the Fortran 2003 standard (section 5.1.2.6):
"The EXTERNAL attribute speciï¬Âes that an entity is an external procedure,
dummy procedure, procedure pointer, or block data subprogram. This attribute
may also be speciï¬Âed by an EXTERNAL statement (12.3.2.2), a
procedure-declaration-stmt (12.3.2.3) or an interface body that is not in an
abstract interface block (12.3.2.1)."
And further on in section 12.3.2.1:
"An interface body in a generic or speciï¬Âc interface block speciï¬Âes the
EXTERNAL attribute and an explicit speciï¬Âc interface for an external
procedure or a dummy procedure. If the name of the declared procedure is that
of a dummy argument in the subprogram containing the interface body, the
procedure is a dummy procedure; otherwise, it is an external procedure."
--
Summary: specific or generic INTERFACE implies the EXTERNAL
attribute
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jaydub66 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36325
More information about the Gcc-bugs
mailing list