09-164r1 To: J3 From: Van Snyder Subject: Definition and undefinition Date: 2009 May 5 References: 09-007r1 1. Discussion Two cases of pointer component default initialization involving BLOCK constructs are missing from 16.5.2.3 and 16.5.2.4. Several cases of pointer undefinition are not enumerated in 16.5.2.5. Several related groups of list items can be brought together by factoring. 2. Edits [451:14+ 16.5.2.3p1(2)+]------------------------------------------------ Editor: Insert the following list item: "(2a) The pointer is a subcomponent of an object that is allocated by an ALLOCATE statement in which SOURCE= appears and the corresponding subcomponent of is associated." [451:20+ 16.5.2.3p1(4)(b) after its first line] and [451:32+ 16.5.2.4p1(4)(b) after its first line]------------------------- Editor: Insert the same list item (before "or") in both cases "(b') a BLOCK statement is executed and this object is an unsaved nonpointer nonallocatable local variable of the BLOCK construct," [451:22 16.5.2.3p1(4)(c), 451:34 16.5.2.4p1(4)(c)]---------------------- Editor: Replace both items by the following item: "(c) the object is allocated other than by an ALLOCATE statement in which SOURCE= appears." {This includes the case of automatic allocation.} [451:27 16.5.2.4p1(3)]-------------------------------------------------- Editor: Delete "or" at the end of item (3) and insert the following list item: "(3a) the pointer is a subcomponent of an object that is allocated by an ALLOCATE statement in which SOURCE= appears and the corresponding subcomponent of is disassociated, or" [452:8 16.5.2.5p1(8)]--------------------------------------------------- Editor: Replace "execution of a RETURN or END statement" by "completion of execution of an instance of a subprogram". [452:12-13 16.5.2.5p1(7)]----------------------------------------------- Editor: Delete "by execution of a RETURN or END statement" (how else?) [452:14 16.5.2.5p1(8)]-------------------------------------------------- Editor: Replace "a procedure ... statement" by "execution of an instance or a subprogram completes" (compare to [459:14 16.6.6p1(3)]). [452:25+ 16.5.2.5p1(10)+]----------------------------------------------- Editor: Insert a list item: "(10') the pointer is a subcomponent of an object that is allocated and either (a) the pointer is not default-initialized and SOURCE= does not appear, or (b) SOURCE= appears and the association status of the corresponding subcomponent of is undefined, " {(10')(a) also covers the case of automatic allocation.}