(j3.2006) J3 Fortran interp letter ballot #22 - due 19-Nov-2010

Malcolm Cohen malcolm
Mon Oct 18 03:39:23 EDT 2010

I wrote:
>> Being undefined is a property of a variable.  IEEE_SUPPORT_DATATYPE is not a 
>> variable, it is a function.  A function reference (other than a 
>> pointer-valued function) returns a value of the type.  That does not include 
>> the concept of being undefined.

Van replies:
> The "result variable" of a function is a variable.

However, we are talking about a function reference, not a reference to the 
result variable.

According to the definition of "defined" (or indeed "undefined"), it is a 
concept that applies only to a data object, that is "constant, variable, or 
subobject of a constant".  That is conspicuously lacking any mention of 
"function reference".

And since these are supplied by the compiler (being part of an intrinsic 
module), there isn't any "result variable" anyway.

>  I found where the standard requires a value to be assigned to a function's 
> result variable.  I suspect you're right that there is not a 
> standard-conforming way to do that, and leave the result undefined.

Not only is there no standard-conforming way, there is no way at all since

    *the result of evaluating a function reference is not a data object*

by definition.

................................Malcolm Cohen, Nihon NAG, Tokyo.

More information about the J3 mailing list