(j3.2006) BIND(C, name='') means no binding label?

Jim Xia jimxia
Wed Jul 25 10:50:38 EDT 2007


Hi everyone,

This is a issue raised by Rob James before he left IBM, so I brought it 
here to see if this topic was discussed within J3 members.  Consider the 
following declaration
        INTEGER(C_INT), BIND(C, name = '     ') :: foo

The question is: does this declaration conform to F2003 standard?

Here is what subclause 15.3.1 [403:4-9] says

 If a variable or common block has the BIND attribute with the NAME= 
specifier and the value of its
 expression, after discarding leading and trailing blanks, has nonzero 
length, the variable or common
 block has this as its binding label. The case of letters in the binding 
label is significant. If a variable
 or common block has the BIND attribute specified without a NAME= 
specifier, the binding label is the
 same as the name of the entity using lower case letters. Otherwise, the 
variable of common block has
 no binding label.

Based on this paragraph, the previous declaration of FOO does not have a 
binding label.  What does that mean?  Does it mean it behaves just as if 
the following declaration: INTEGER(C_INT) :: foo, or this is a declaration 
the same as if no name= specifier is supplied: INTEGER(C_INT), BIND(C) :: 
foo

Thanks,

Jim Xia

XL Fortran Compiler Testing
IBM Toronto Lab at 8200 Warden Ave.
Phone (905) 413-3444  Tie-line 969-3444
D2/NAH/8200 /MKM
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://j3-fortran.org/pipermail/j3/attachments/20070725/ac1660c6/attachment.html 



More information about the J3 mailing list