13.11.5 Subpool Reclamation
A subpool may be explicitly deallocated using Unchecked_Deallocate_Subpool. 
Static Semantics
The following language-defined 
library procedure exists:
with System.Storage_Pools.Subpools;
procedure Ada.Unchecked_Deallocate_Subpool
   (Subpool : 
in out System.Storage_Pools.Subpools.Subpool_Handle);
 
If Subpool is null, a call on Unchecked_Deallocate_Subpool 
has no effect. Otherwise, the subpool is finalized, and Subpool is set 
to null.
Finalization of a subpool 
has the following effects:
The subpool no longer belongs to any pool;
Any of the objects allocated from the subpool that 
still exist are finalized in an arbitrary order;
 
All of the objects allocated from the subpool cease 
to exist;
 
The following dispatching 
call is then made: 
   Deallocate_Subpool(Pool_of_Subpool(Subpool).all, Subpool);
 Finalization of a Root_Storage_Pool_With_Subpools 
object finalizes all subpools that belong to that pool that have not 
yet been finalized.
Ada 2005 and 2012 Editions sponsored in part by Ada-Europe