(j3.2006) binding labels and global identifiers

Bill Long longb
Wed Jun 22 17:20:48 EDT 2011



On 6/22/11 4:08 PM, Van Snyder wrote:
>
> On Wed, 2011-06-22 at 12:41 -0700, Bill Long wrote:
>> In any case, this is a candidate for an Interp.
>
> The interp question would have to be of the form "were you guys
> serious?"  Or maybe "Wouldn't it be OK to have more global identifiers
> that aren't specified in 16.2p1?"
>
> 16.2p1 is pretty clear:
>
> The global identifier of an external procedure with no binding label
> [that is, with no BIND attribute] is the name of the procedure.  It goes
> on to say that a binding label is a global identifier.  One might ask
> for clarification whether the name of the procedure that has a binding
> label is also a global identifier, but it's not in the list in 16.2p1,
> so I'd be inclined to say "no" to both questions.

The name of a procedure that has a binding label is explicitly listed in 
the list of Local identifiers in 16.3.1.  So, solidly, no.

>
> So, in the interface block from a few days ago
>
> interface
>    subroutine subr () bind(C,name='subr_')
>      ...
>    end subroutine subr
> end interface
>
> "subr" is not a global identifier.  This was already the subject of an
> interp.  If in some other scoping unit one has written
>
> interface
>    subroutine subr () bind(C,name='foo_')
>      ...
>    end subroutine subr
> end interface

This is not the issue.  If one has written

subroutine subr()
end subroutine subr

(not an interface block, but an actual subroutine definition), then this 
and an interface of the form

interface
    subroutine localname() bind(c, name="subr_")
    end subroutine localname
end interface

have a collision on a Unix system.  This is the case that I was hoping 
to see addressed in the interp.

Cheers,
Bill



-- 
Bill Long                                           longb at cray.com
Fortran Technical Support    &                 voice: 651-605-9024
Bioinformatics Software Development            fax:   651-605-9142
Cray Inc./Cray Plaza, Suite 210/380 Jackson St./St. Paul, MN 55101





More information about the J3 mailing list