J3/15-114 To: J3 Subject: Wart removal proposal -- VALUE and VOLATILE From: Van Snyder Date: 2015 January 07 Reference: 15-007 1. Introduction =============== There is no reason to prohibit a dummy argument with the VALUE attribute to have the VOLATILE attribute. Since the value dummy argument is copied from the actual argument (see 12.5.2.3p4), the VOLATILE attribute does not apply to the corresponding actual argument. It is impossible for volatility to commence before an executable construct is executed. Prohibiting the VOLATILE attribute simply requires one to copy the argument yet again to a local variable -- but a dummy argument with the VALUE attribute already is effective a local variable. 2. Proposal =========== Allow a dummy argument with the VALUE attribute to have the VOLATILE attribute. 3. Edits ======== [xviii, Introduction, under "Program units and procedures"] Insert list item "-- A dummy argument with the VALUE attribute may have the VOLATILE attribute." [106:16] Replace "POINTER, or VOLATILE" with "or POINTER". [298:15] Append a sentence (or maybe a note) "If it also has the VOLATILE attribute, it is impossible for volatility to commence before an executable construct is executed."