To: J3 Members J3/16-272 From: Van Snyder Subject: Comments on Constraints C1545-C1549 References: 16-007r2 Date: 2016 September 30 1. Introduction --------------- Constraints C1545-C1547 cannot be constraints unless the interface is explicit, but the requirements for explicit interface are not constraints. Further, explicit interface is not required simply if the actual argument has the ASUNCHRONOUS or VOLATILE attribute. Requiring that would be a new feature, and we probably don't want to do that anyway. C1548 and C1549 cannot be constraints without every reference requiring explicit interface. We definitely do not want to do that, at least not anytime soon. 2. Edits -------- [319:2 C1545] Replace "with" with "that has" for consistency with the style of C1547-C1547. [319:2-13 C1545-C1547] Make C1545-C1547 ordinary normative text. [320:29-31 C1548-C1549] Make C1548 and C1549 ordinary normative text. 3. Questions and comments without edits --------------------------------------- It seems that the problems C1545-C1547 are attempting to prevent occur if the dummy argument gains one of those attributes in a BLOCK construct, or if it is passed to another procedure where the dummy argument has (or eventually acquires) one of those attributes, etc. I think they need to be inverted to say that if a variable has one of those attributes it shall not be a dummy argument associated with an effective argument that is a coindexed object that has one of those attributes, unless a dummy argument in the sequence of associations between the effective argument and the variable has the VALUE attribute. Is it necessary to prohibit a variable that has ASYNCHRONOUS attribute to be associated with one that has the VOLATILE attribute, and vice-versa?