(j3.2006) binding labels and global identifiers
Van Snyder
Van.Snyder
Thu Jun 23 14:48:39 EDT 2011
On Thu, 2011-06-23 at 07:35 -0700, Bill Long wrote:
>
> On 6/23/11 12:21 AM, Malcolm Cohen wrote:
>
> >
> > Much more likely,
> > SUBROUTINE localname() BIND(C,NAME='SUBR')
> > which works perfectly on Unix including IBM and fails on Windows/Intel, or
> > SUBROUTINE localname() BIND(C,NAME='subr')
> > which works perfectly on Windows/Intel and most Unix, but fails on IBM.
> >
>
> The first example is one of the more useful contributions to the thread
> so far.
It is essentially the same as my example of 22 June 17:08:23 EDT
(http://j3-fortran.org/pipermail/j3/2011-June/004461.html):
subroutine foo() bind(C,name='Subr')
> I would argue that the second case (IBM fails) violates the current
> wording in the standard since the binding name is the same as the name
> of the conflicting subroutine. So IBM can point to the standard and say
> that they are doing the right thing and the programmer made a mistake.
Are you sure the binding name is the same as the name of the conflicting
subroutine?
The name of the conflicting subroutine is without regard to case. That
is why I asked in that same message "Is the global identifier of 'subr'
without regard to case?" 16.2p2 says that the global identifiers of two
global entities cannot be the same. What does that mean when comparing
caseless Fortran names with case-sensitive binding labels?
More information about the J3
mailing list