(j3.2006) (SC22WG5.4222) What shall we do with the broken feature?
Malcolm Cohen
malcolm at nag-j.co.jp
Wed Mar 17 04:19:29 EDT 2010
The facility of being able to pass a null pointer or unallocated allocatable to
an optional nonpointer nonallocatable dummy argument and have that treated as
being an absent dummy argument is broken as follows.
(i) All of the optional DIM arguments to the intrinsic functions that change the
rank are qualified with "The corresponding actual argument shall not be an
optional dummy argument.". Previously it was not permitted to pass a null
pointer here, now it is permitted and gives a runtime-varying rank depending on
the association status of the pointer. E.g. PRODUCT(matrix,pointer_to_dim) is
rank 1 if pointer_to_dim is associated and rank 0 if it is not. 20 functions
have a prohibition against optional dummy arguments, but in several of those it
is an unnecessary prohibition so fewer than 20 would be necessarily affected.
(ii) This feature appears to change the results of ASSOCIATED when TARGET is a
null pointer. This does not appear on the surface to be fixable other than by
specifying that the feature does not apply to this particular intrinsic
function, which might be confusing.
(iii) Minor: The performance of a few intrinsic functions such as MAX when some
arguments are pointers is adversely affected.
(iv) Nitpick: the description in the Introduction omits the unallocated
allocatable case.
How should we address the problem?
(1) fix the DIS by deleting the feature (I don't think we have a mandate for
that though);
(2) fix the DIS by changing the wording;
(2) leave it to be fixed later via interpretation processing (other than the
nitpick which should be done anyway).
Comments?
Cheers,
--
................................Malcolm Cohen, Nihon NAG, Tokyo.
More information about the J3
mailing list