(j3.2006) BIND(C, name='') means no binding label?
Wed Jul 25 10:50:38 EDT 2007
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
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) ::
XL Fortran Compiler Testing
IBM Toronto Lab at 8200 Warden Ave.
Phone (905) 413-3444 Tie-line 969-3444
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the J3