RM 13 3 50-56 Size Clauses (GNAT Reference Manual)

### 6.21 RM 13.3(50-56): Size Clauses ¶

> “If the `Size` of a subtype is specified, and allows for efficient independent addressability (see 9.10) on the target architecture, then the `Size` of the following objects of the subtype should equal the `Size` of the subtype:

> Aliased objects (including components).”

Followed.

> “Size clause on a composite subtype should not affect the internal layout of components.”

Followed. But note that this can be overridden by use of the implementation pragma Implicit_Packing in the case of packed arrays.

> “The recommended level of support for the `Size` attribute of subtypes is:

> The `Size` (if not specified) of a static discrete or fixed point subtype should be the number of bits needed to represent each value belonging to the subtype using an unbiased representation, leaving space for a sign bit only if the subtype contains negative values. If such a subtype is a first subtype, then an implementation should support a specified `Size` for it that reflects this representation.”

Followed.

> “For a subtype implemented with levels of indirection, the `Size` should include the size of the pointers, but not the size of what they point at.”

Followed.