J3/03-270 Date: 10 Nov 2003 To: J3 From: Richard Maine Subject: J3 proposed fixes to the FCD References: 03-257,03-262,03-265,03-267 The following edits to the FCD are proposed 1. Typos and editorial errors [269:Note 12.21] Dehyphenate "non-polymorphic" twice. (03-257) [380:26] Delete spurious quote at the end of the line. (03-265) [423:2] "variables" -> "variable". (03-257) [453:2] "of MAR" -> "of MARY" (03-257) Change en-dash (LaTeX --) to minus (LaTeX $-$). (03-265) [71:6+7], [213:21], [293:13,16], [502:9,10] 2. Incorrect terminology (03-257) [14] In Table 2.1, "enumeration declarations" -> "enumeration definitions". In note 1 of Table 2.2, "enum statements" -> "enumeration definitions". 3. Definition of type compatible (03-257) Fix sloppy writing that was saying something different from what was intended. [75:26], [76:1] "same type" -> "same declared type" twice. [75:26-27] Delete "For a polymorphic...declared type." 4. Example code violates C1266. (03-257) [277:18+6] "REAL X" -> "REAL, INTENT(IN) :: X" 5. Invalid C (03-257) [486:35] Insert ";" after the last "c". 6. Normative text contradicts Note 16.8. (03-257) [411:5] "; they" -> ", except that an accessed entity may have the VOLATILE or ASYNCHRONOUS attribute even if the host entity does not. The accessed entities" 7. Constraints accidentally prohibit class(*) components. (03-262) [50:19,21] After "" insert "shall be CLASS(*) or" twice. 8. Explanations reversed in Note 12.21. (03-265) [268:24+3]-[269:0+1] "and have...that type." -> "and the declared type of the dummy argument needs to be the same as, or an extension of, the declared type of the actual argument." [269:0+2] "the dummy argument" -> "the actual argument" [269:0+3] "the actual argument" -> "the dummy argument" 9. CLASS IS(intrinsic) allowed, but nonsensical. (03-267) The description of a CLASS IS type guard statement at [163:7-8] refers to an extension of the type specified. This makes no sense for nonextensible types. C815 disallows all nonextensible derived types, but nothing disallows intrinsic types, which are also nonextensible. There is no obvious problem with intrinsic types in TYPE IS, but we need to either disallow them in CLASS IS or say what they mean there. [162:20+] C815.5 (R823) The in a CLASS IS shall specify an extensible type.