To: J3 10-207r1 From: Bill Long Subject: Interop TR: Error for bad attribute in de/allocate Date: 2010 October 11 Reference: 10-165r2.pdf Discussion: Proposed at m192 was a requirement that the attribute value in a descriptor be for an allocatable or pointer object if the descriptor is supplied to CFI_allocate or CFI_deallocate. It is already required that the descriptor be for an allocatable or pointer object. Edits are provided to require that the value of the attribute member be valid, or the routine returns an error. Since we are now specifying that an error shall be detected for a specific case, it is no longer the case that which errors are detected is processor dependent. Edits to 10-165r2: [11:9] In 5.2.6.1 Functions/General, para 3, sentence 2, replace "occurs" with "is detected". [11:11] In 5.2.6.1 Functions/General, para 3, sentence 4, replace "Which errors are detected" with "The errors that are detected, beyond those specified in 5.2.6,". [12:6] In 5.2.6.2 CFI_allocate, replace the the last sentence, "The C descriptor is updated by this function." with "If the value of the attribute member of the C descriptor is not the attribute code for an allocatable or pointer object, no allocation is performed, the C descriptor is not modified, and the function returns a nonzero result. Otherwise, the object described by the C descriptor and the bounds is allocated and the C descriptor is updated." [12:13] In 5.2.6.3 CFI_deallocate, replace the last sentence, "The C descriptor is updated by this function." with "If the value of the attribute member of the C descriptor is not the attribute code for an allocatable or pointer object, no deallocation is performed, the C descriptor is not modified, and the function returns a nonzero result. Otherwise, the object described by the C descriptor is deallocated and the C descriptor is updated."