09-175r1 To: J3 From: Van Snyder Subject: 12.8.3p2 is a waste of ink Date: 2009 May 4 References: 09-007r1 1. Discussion (paraphrased from e-mail from Malcolm) Subclause 12.8.3p2 [317:9-12] pretends that MVBITS is an ordinary subroutine with a body that does the things that 13.7.119 [376:1ff] says it does. If it were, the first sentence of 12.8.3p2 would contradict the requirements of 12.5.2.13 [302:4ff], since there is no exception there for elemental or intrinsic subroutines. This is nonsense in the context of the second sentence, which is broken. There aren't any requirements on actual arguments in 12.5.2.13; it isn't about actual arguments at all (or about dummy arguments, for that matter); it's about what a procedure cannot do to actual arguments. One might argue that what was meant in 12.8.3p2 was to restrict what elemental procedures could do to the actual arguments associated with their dummy arguments, but 12.5.2.13 already specifies that. This sentence should be about the relationship of the actual arguments of intrinsic procedures to the effect of executing the procedure. This all belongs in 13.2.1, which is entitled "Arguments to intrinsic procedures." It has nothing to do with how nonintrisic elemental procedures are defined. This was done correctly by interp F90/173, and then broken when that interp was incorporated into F95. 2. Edits [317:12 12.8.3p2]----------------------------------------------------- Editor: Replace "elemental" by "intrinsic" and replace "must" by "shall be such that the execution of the intrinsic subroutine would". Then move all of 12.8.3p2 to be a new paragraph at [320:7+ 13.2.1p5+].