J3/99-260 Date: 1999/12/1 To: J3 From: /interop Subject: Unresolved issues 100, 102 and 174. References: 99-007r2. 1. Unresolved issue 100, section 16.2.4, page 408. J3 internal note asks for a reference/glossary entry for the C term "flexible array member". That glossary entry already exists (page 418:40-41). [408:28-30] Delete J3 internal note 100. 2. Unresolved issue 102, section 16.2.4, page 409. J3 internal note 102 asks for clarification/ correction of Note 16.9. It is apparent that this note discusses compatibility of C struct types, not whether they are the same. [409:6-11] Change Note 16.9 into the following: "The C standard requires the names and component names to be the same in order for types to be compatible (C standard, clause 6.2.7). This is similar to Fortran's rule describing when sequence derived types are considered to be the same type. This rule was not extended to determine whether a Fortran entity of derived type interoperates with a C entity of struct type because the case of identifiers is significant in C but not in Fortran." [409:12-21] Delete J3 internal note 102. 3. Unresolved issue 174, Glossary, page 414. J3 internal note 174 questions the usefulness of including C terms in the glossary, especially entries for C types. It also requests more descriptive entries for those terms that are to stay. Deleting C terms that refer to types whose correspondence to Fortran types is summarized in table 16.1 appears to solve this issue, when a note about their definition in the C standard is appended to the table. Glossary entries for the remaining C terms are updated (Note the spelling update of compatable [sic] type). [406:37+] Add the following sentence: "The above mentioned C types are defined in the C standard, clause 6.2.5." Delete the corresponding entries in the glossary: [414:1-2] Delete. [417:35-36] Delete. [418:42-43] Delete. [420:6-7] Delete. Change the following entries in the glossary: [415:20-21] "bit field: Component of a C struct type, defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." [416:11] "compatible type: Characteristic describing correspondence of C types; defined in clause 6.2.7 of the C standard." [418:29-30] "external linkage: Characteristic describing that a C entity is global to the program; defined in clause 6.2.2 of the C standard." [418:40-41] "flexible array member: Term describing a part of a C struct that has unknown size; defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." [419:40-41] "incomplete type: A designation of C types of unknown size; defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." [423:5-6] "prototype: The C analog of a function interface block; defined in clause 6.7.5.3 of the C standard." [424:18-19] "struct: The C analog of a sequence derived type; defined in clause 6.2.5 of the C standard." [425:13-14] "union: A C type containing several types in a common storage entity; defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." [425:15-16] "unsigned: A qualifier of a C numeric type indicating that it is only comprised of nonnegative values; defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." [425:18-19] "void: A C type comprising an empty set of values; defined in clause 6.2.5 of the C standard. There is nothing analogous in Fortran." Remove J3 internal note 174: [414:3-31] Delete J3 note 174.