To: J3 Members J3/16-259 From: Van Snyder Subject: Comments on Clause 8 References: 16-007r2 Date: 2016 September 28 1. Edits -------- [99:26,28 8.5.1p1,C815] It is unlikely somebody would look for constraint C815 at this place. It applies only to the relationship of R815 to function results. More obvious places to look for it are immediately after R815, or after R1530. Replace "constraints apply" with "constraint applies". Make C815 a constraint on R815 and move it to [104:14+ R815+] with the same text, or move it to [330:33+ C1560+]: "C1560a If the function result is a nonallocatable nonpointer array, the shall be an ." [100:18 8.5.4p1] Replace "entity" with "variable" Delete "is a variable that". [100:31-32 8.5.4p4] Replace "an object" with "a variable" because objects that aren't variables can't have the attribute. Then move the final sentence of 8.5.4p4 to be the final sentence of 8.5.4p1 at [100:19]. [105:19+ R819+] Insert a constraint: "C831a (R819) An shall not appear if the array is not a dummy data object." [105:26-27 8.5.8.4p1] Delete the paragraph because it's the same as C832. [105:29-30 C832] Should be "if and only if". Replace C832: "C832 (R820) A shall appear if and only if the array has the POINTER or ALLOCATABLE attribute." {This does not require that a variable with the POINTER or ALLOCATABLE attribute be a deferred-shape array; it can be a scalar.} [108:30+4 NOTE 8.14] After "coarrays" insert ", which would require synchronization,". [109:0+14-15 NOTE 8.16] Before "association" insert "pointer". Replace "the operations allowed" with "operations". [109:0+18,21 NOTE 8.17] Delete "slightly more sophisticated". Delete "to see". Delete "more sophisticated". [111:15-16 8.5.15p2] Before "execution" insert "completing". Replace "RETURN or END statement" with "procedure or BLOCK construct". {The definition of END statement in 5.3.3 doesn't include END BLOCK.} [112:7 8.5.16p4] The sentence lists the "other kinds of scoping units". Delete "other kind of". [112:14+9,11 NOTE 8.24] Replace "will have" with "has". Replace "point only to" with "be associated only with" {Fortran pointers don't "point to"}. [116:2 C875] Replace "starting point, and substring ending point" with "range" {It's good enough to use the term "substring range" in C8101}. [116:34+ C887+] Insert a constraint "C887a (R838) The lengths of the expanded sequences of variables and of s shall be the same." [117:8-9 8.6.7p8] Delete "The lengths ... the same." because of the previous edit. [118:11 R852+] Insert a constraint: "C887b The value of a named constant shall not be specified more than once." {The value of a named constant is not an attribute, so it's not covered by C814}. [120:34 8.7p3] Before "mapping" insert "nonnull" because an IMPLICIT NONE statement specifies a mapping, a null mapping, but nonetheless a mapping. [124:8 C898] After "coarray" insert ", a subobject of a coarray, a coindexed object" [124:25+2 NOTE 8.42] Replace "the equivalencing" with "storage association" twice. [124:35-26 8.9.1.3p1] Delete the first sentence, beginning "A default character..." because it's the same as C8103. [125:10 8.9.2.1p1] Replace "Thus, the" with "The" because the conclusion doesn't follow from the premise. 2. Question without edits ------------------------- [101:4 R808] In light of the C standard having a mechanism to allow external names to be composed of characters other than those of 8859-1, why is the binding name restricted to default characters? [121-122] Do we really need two pages of examples for the IMPLICIT statement? Couldn't at least some of this be in Annex C?