Ada Programming/Attributes/'Descriptor Size

Description
Nonstatic attribute  returns the size in bits of the descriptor allocated for a type. The result is non-zero only for unconstrained array types and the returned value is of type universal integer. In GNAT, an array descriptor contains bounds information and is located immediately before the first element of the array. The attribute takes into account any padding due to the alignment of the component type. In the example above, the descriptor contains two values of type  representing the low and high bound. But, since  has an alignment of 4, the size of the descriptor is   rounded up to the next multiple of 32, which yields a size of 32 bits, i.e. including 16 bits of padding.