Version 1.1 of ai12s/ai12-0142-1.txt
!standard 13.1.1(34/3) 14-12-04 AI05-0142-1/01
!standard 4.1.5(5/3)
!standard 4.1.6(6/3)
!standard 4.1.6(7/3)
!standard 4.1.6(8/3)
!standard 5.5.1(21/3)
!class binding interpretation 14-12-04
!status work item 14-12-04
!status received 14-10-28
!priority Low
!difficulty Medium
!qualifier Omission
!subject Bad subpool implementations
!summary
Add erroneous execution wording for subpools.
!question
We have 13.11(21) to say that compilers do not have to worry about
malfunctioning pool implementations. However, this wording does not cover
any memory allocated by Allocate_From_Subpool (as in that case, Allocate
is never called). Should we have such wording? (Yes.)
!recommendation
(See Summary.)
!wording
Add after 13.11.4(31/3):
Erroneous Execution
If Allocate_From_Subpool does not meet one or more of the requirements on the
Allocate procedure (see Erroneous Execution in 13.11), then the program
execution is erroneous.
!discussion
13.11(21) is cleverly worded such that problems caused by the implementation
of Deallocate or external action (as could happen if the pool type is not
encapsulated) are blamed on the implementation of Allocate and thus also can
cause erroneous execution. Specifically, such problems cause the allocated
memory to be used for some other purpose while the pool element still exists.
For allocation from a subpool, Allocate need never be called. If Allocate is
never called, 13.11(21) does not apply. But of course Allocate_From_Subpool
needs the same sort of requirements that Allocate does.
13.11.4(21) attempts to apply those requirements to Allocate_From_Subpool,
but it fails to state the consequences. Thus we add a sentence under the
proper heading to do that.
!ASIS
No ASIS effect.
!ACATS test
We need an ACATS B-Test to verify that the new rule(s) are enforced.
!appendix
****************************************************************
Questions? Ask the ACAA Technical Agent