J3/07-339 Date: 2007 November 15 To: J3 Members From: Van Snyder Subject: J3 Fortran interp F03/0099: Clause 16 does not account for volatile variable NUMBER: F03/0099 TITLE: Clause 16 does not account for volatile variable KEYWORDS: volatile, defined, undefined DEFECT TYPE: Erratum STATUS: QUESTION: Should the various lists in clause 16 that describe definition and association be modified to include the effects of volatile variables? In particular, 16.4.2.1.1 through 16.4.2.1.2 do not mention the fact that pointer association status can be volatile and change by other means. 16.5.4 says "all other variables are initially undefined.? Can a volatile variable be initially defined by other means? 16.5 (26) says volatile variables "become defined", but they also can become undefined, by other means. Allocatable volatile variables can become allocated or unallocated by other means also. ANSWER: Yes, the lists in clause 16 should be modified to include the effects of volatility. In addition, the effects of volatile on pointer objects are not completely specified in clause 5. The effect on allocatable objects is not complete in clause 6. EDITS: [85:10] In the paragraph between note 5.21 and note 5.22, change "association status and array bounds" to "association status, dynamic type and type parameters, and array bounds" [415:27] Add a new paragraph at the end of 16.4.2.1.4 "The association status of a pointer object with the VOLATILE attribute may change by means not specified by the program. If the association status of such an object changes, its array bounds or deferred type parameters may change. If in addition it is polymorphic, its dynamic type and additional type parameters not specified in its declaration may also change." [421:42-43] In 16.5.5 Replace list item (26) with (as text, not a list item) "In addition, an object with the VOLATILE attribute (5.1.2.16) might become defined by means not specified by the program." [423:28+] In 16.5.6 after the last list item insert (as text, not a list item) "In addition, an object with the VOLATILE attribute (5.1.2.16) might become undefined by means not specified by the program." SUBMITTED BY: Dick Hendrickson HISTORY: 07-269 m181 F03/0099 Submitted 07-269r2 m181 Passed by J3 meeting 07-279/07-321 Failed letter ballot 07-xxx m182 Revised