J3/15-200r2 To: J3 Members From: Steve Lionel Subject: UTI 008 and UTI 012 Date: 2015 August 06 Reference: 15-007r1, 15-119r2, 11-173r1 ---------------------------------------------------------------------- 1. Unresolved Technical Issue 008 Paragraph 9 of 15.5.4 "Macros and typedefs in ISO_Fortran_binding.h" currently says: "Additional nonnegative processor-dependent type specifier values may be defined for Fortran intrinsic types that are not represented by other type specifiers and noninteroperable Fortran derived types that do not have type parameters, type-bound procedures, final subroutines, allocatable components, or pointer components." The editor remarks, "Is the processor required to define a nonnegative type specifier value for the above cases?" and cites 15.3.7 which also specifies which values the *type* member of a C descriptor may take. Paper 15-119r2 attempted to address this issue, but the associated edits were rejected. The text in question was added by 11-173r1 which suggested there was a use case for distinct type codes for noninteroperable derived types that were "copyable", but pushing this off on the individual processor is problematic in usage and does not aid portability. This paper proposes to resolve UTI 008 by clarifying the wording and deleting the text relating to noninteroperable derived types having processor-defined type codes. 2. Unresolved Technical Issue 012 Paragraph 4 of 15.3.7 "Interoperability of procedures and procedure interfaces" attempts to explain how a C descriptor shall be filled in for a reference from C. The editor properly objects that the terminology used in this paragraph is incorrect and that, in particular, the text relating to the *type* member is inconsistent with text in 15.5.4. Edits are supplied to rectify this. Edits: ("Intended effective argument" is not a defined term, but "effective argument" is: "entity that is argument-associated with a dummy argument". The idea is that the descriptor, which is the actual argument, describes the item that is the intended effective argument.) [461:31,15.3.7p4] Replace "for the actual argument" in the first sentence of this paragraph with "for the intended ". [462:1,15.3.7p4] Replace "same characteristics as the actual argument" with "same characteristics as the intended ". [462:3,15.3.7p4] Replace "value from Table 15.4 that depends on the effective argument" with "value that depends on the intended ". [462:4,15.3.7p4] Replace "effective argument" with "intended ". [462:6-9,15.3.7p4] Replace the second bullet "If the dynamic type... no corresponding type..." with "If the of the intended is interoperable with a Fortran intrinsic type for which the processor defines a nonnegative type specifier value not found in Table <15-4>, that type specifier value." (deleting text regarding noninteroperable derived types). [467:6-8] Replace paragraph 9 "Additional nonnegative processor-dependent..." with the following: If the processor supports interoperability of Fortran intrinsic types that correspond to C types not listed in Table <15-4>, the processor shall define additional, positive type specifier values for those types.