07-212r3 To: J3 From: Aleksandar Donev Subject: UTI 102 Date: 2007 May 10 References: 07-007r1, 07-161 1. Discussion --------------- Van proposed that C_PTR and C_FUNPTR ought to have pointer components as a possible resolution to UTI 102. Subgroup disagrees with this recommendation. We believe that such a change at this stage would be late in the process and not in accord with Fortran 2003. The types C_PTR and C_FUNPTR would need to be excluded from other rules, for example, they would be interoperable even though they would have pointer components. Instead, we propose an alternative fix for UTI 102 as recommended by the editor. We did not find it easy to word the restrictions in terms of what would have happened to a Fortran pointer, so we simply repeat the words that apply to Fortran pointers. Edits: Unrelated nearby editorial corrections ----------------------------------------- [467:12] Insert "C" before "struct" [468:3] Set "pointer" and "allocatable" in all caps. ----------------- [493:47] Delete "any part of" [494:7+] Add new events to the list: (+1) When termination of a BLOCK construct causes a variable to become undefined, any variable of type C_PTR becomes undefined if its value is the C address of the variable that became undefined. (+2) Execution of the allocation transfer procedure (13.7.125) where an object without the target attribute is pointer associated with the argument TO causes any variable of type C_PTR to become undefined if its value is the C address of any part of the argument FROM."