Sizeof a subtype is specified, and allows for efficient independent addressability (see 9.10) on the target architecture, then the
Sizeof the following objects of the subtype should equal the
Sizeof the subtype:
Aliased objects (including components)."
"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
Sizeattribute of subtypes is:
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
Sizefor it that reflects this representation."
"For a subtype implemented with levels of indirection, the
Sizeshould include the size of the pointers, but not the size of what they point at."