1
Pragma Controlled is used to prevent any automatic reclamation of storage (garbage collection) for the objects created by allocators of a given access type.
2
The form of a pragma Controlled is as follows:
3
pragma Controlled(first_subtype_local_name);
4
The first_subtype_local_name of a pragma Controlled shall denote a non−derived access subtype.
5
A pragma Controlled is a representation pragma that specifies the controlled aspect of representation.
6
Garbage collection is a process that automatically reclaims storage, or moves objects to a different address, while the objects still exist.
7
If a pragma Controlled is specified for an access type with a standard storage pool, then garbage collection is not performed for objects in that pool.
8
An implementation need not support garbage collection, in which case, a pragma Controlled has no effect.