[J3] [SC22WG5.6385] WG5 Letter Ballot 2

Robert Corbett rpcorbett at att.net
Tue May 10 00:53:12 UTC 2022

Yes  No   Number    Title

-Y-  ---  F18/007   Problems with C_FUNLOC and C_F_PROCPOINTER being PURE
-Y-  ---  F18/015   Example in C.6.8 is wrong
---  -N-  F18/019   PURE and default initialization
-Y-  ---  F18/023   CLASS(*) ambiguous operator overloading
-Y-  ---  F18/024   CFI_setpointer with result a deferred length character
-Y-  ---  F18/026   C_SIZEOF argument
-Y-  ---  F18/027   CO_BROADCAST with allocatable component
-Y-  ---  F18/028   Specification inquiry
-Y-  ---  F18/029   Type of main argument of CO_REDUCE
-Y-  ---  F18/030   CO_REDUCE/REDUCE OPERATION with coarray argument
-Y-  ---  F18/031   CO_BROADCAST with polymorphic argument
-Y-  ---  F18/032   CO_BROADCAST and pointer components
-Y-  ---  F18/033   E/EN/ES/D output exponent when w=0
-Y-  ---  F18/034   Purity of IEEE_GET_FLAG and IEEE_GET_HALTING_MODE
-Y-  ---  F18/035   Defining/referencing a coarray component of a dummy arg
-Y-  ---  F18/036   Array element argument for sequence association
-Y-  ---  F18/037   Locality spec limitations
-Y-  ---  F18/038   SIZE= with no reason
-Y-  ---  F18/039   Corresponding coarrays in recursive procedures
-Y-  ---  F18/040   Allocating dummy arg with a coarray ultimate component
-Y-  ---  F18/041   NULL() passed to assumed-rank dummy

F18/019 No

I do not object to the answer.  I object to the proposed edit.

The text explaining the answer in essence says that if no
local or construct variable or named constant is "of a type
that has default initialization of a data pointer component
to a target any level of component selection" the problems
described in the QUESTION portion of the interpretation
request cannot arise.  I believe this assertion is correct.

The proposed edit might ban a bit more than is intended.  It
clearly suffices to ban the cases that need to be banned.
However, it might be read to ban cases that do not need to
be banned.  Specifically, it might be read as banning
type names that name derived types that include default
initializations of pointer components to targets.  I do not
think it does, but I am not sure it does not.

A type name can name a local entity that might seem to be
subject to the new constraint.  However, I do not think that
a derived type is "of a type" (it is a type), and therefore,
is not subject to the constraint.  I find that to be a slender
reed.  An alternate edit might be

    C1589a A named local or construct data entity of a pure
           subprogram shall not be of a {declared} type that
           has default initialization of a data pointer
           component to a target at any level of component

The word "declared" need not be part of the edit, but I find
the sentence easier to read with it.  If the the edit is
changed as indicated, I will change my answer to "-Y-".

If the proposed ban is intended to include type names, I
still do not object to the interpretation, but different
edits will be needed.


Robert Corbett representing Corbett
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20220510/ea4b688f/attachment-0001.htm>

More information about the J3 mailing list