08-165r1 To: J3 From: Malcolm Cohen Subject: Restrictions on ASYNCHRONOUS/VOLATILE dummy arguments Date: 2008/05/14 1. Introduction The restrictions in constraints C1237-C1239 are stronger than they need to be to satisfy the desires expressed in Note 12.27. This paper proposes lifting these restrictions so that they only apply when both the actual and dummy argument have at least one (not necessarily the same one) of the ASYNCHRONOUS or VOLATILE attributes. That is, the aversion to copy-in/out is only necessary, and therefore should only apply, if there is any chance that the volatility and/or asynchronicity is active either before or after the procedure call; there is no problem if it is limited to only being within the called procedure itself. 2. Edits [291:12.5.2.4 C1237] After "coindexed object" insert "with the ASYNCHRONOUS or VOLATILE attribute". {Not a problem doing copy-in/out if not async/volatile.} [291:12.5.2.4 C1238] After "nonpointer array that" insert "has the ASYNCHRONOUS or VOLATILE attribute but". {Not a problem doing copy-in/out if not async/volatile.} [291:12.5.2.4 C1239] After "array pointer that" insert "has the ASYNCHRONOUS or VOLATILE attribute but". {Not a problem doing copy-in/out if not async/volatile.} [291:12.5.2.4 Note 12.27] After "The constraints on" Change "actual arguments that correspond" To "an actual argument with the ASYNCHRONOUS or VOLATILE attribute that corresponds" {Adjust note; also, use singular.} [291:12.5.2.4 Note 12.27] After "Making a copy of" Change "actual arguments whose values are" To "an actual argument whose value is", And change "those new values" to "the new value". {Fix pre-existing number disagreement in the second sentence.} ===END===