To: J3 08-216r1 From: Bill Long Subject: Pointer components and coindexed arguments Date: 2008 Aug 11 References: J3/08-007r2 (WG5/N1723) Discussion It is made clear (157: 7.2.2.3, para 2) that for data pointer assignment, if the is a pointer with a target that is not on the same image, the pointer association status of the becomes undefined. Note 7.46 explains that this is intended to cover situations where data pointer association with a target that is not on the same image might otherwise be implied. While the intention is clear, the normative text does not cover situations that are not defined in terms of pointer assignment, notably when a coindexed actual argument has a pointer component. To cover all situations, we think that it should be made clear in 16.5.2 that a data pointer can be associated only with a target that is on the same image. We also propose to add to 16.5.2.5 the case of a pointer component of a coindexed actual argument to the list of ways that the association status of a pointer may become undefined. We also propose to expand Note 7.46. Edits to J3/08-007r2 (WG5/N1723): [157:Note 7.46] In 7.2.2.3 "Data pointer assignment", in the Note following para 2, second sentence, replace "This prevents this statement" with "This prevents a pointer assignment statement". [157:Note 7.46] In 7.2.2.3 "Data pointer assignment", in the Note following para 2, third sentence, delete the middle clause ", such as ... intrinsic assignment". Then add a new final sentence, "Examples include a pointer component in a derived-type intrinsic assignment or a pointer component of an allocate object in an ALLOCATE statement if SOURCE= appears and the source expression is coindexed." [446] In 16.5.2.1 "Pointer association / General", para 1, line 2, after "different targets" add "on its own image". [448] In 16.5.2.5 "Events that cause the association status of pointers to become undefined" and to the list: "(13) the pointer is a data pointer ultimate component of a dummy argument and the procedure is invoked with a coindexed object as the corresponding actual argument. (14) the pointer is a data pointer ultimate component of a coindexed actual argument of a procedure invocation and the corresponding component of the corresponding dummy argument is associated or disassociated when execution of the procedure is completed. (15) the pointer is a data pointer ultimate component of an object that becomes defined with a value for which the corresponding component is associated with a target on a different image."