Next: , Previous: J.8, Up: Annex J


J.9 The Storage_Size Attribute

Static Semantics

1
For any task subtype T, the following attribute is defined:

2
T'Storage_Size

Denotes an implementation−defined value of type universal_integer representing the number of storage elements reserved for a task of the subtype T.

2.a

To be honest: T'Storage_Size cannot be particularly meaningful in the presence of a pragma Storage_Size, especially when the expression is dynamic, or depends on a discriminant of the task, because the Storage_Size will be different for different objects of the type. Even without such a pragma, the Storage_Size can be different for different objects of the type, and in any case, the value is implementation defined. Hence, it is always implementation defined.

3/2

{00345AI95−00345−01} {specifiable (of Storage_Size for a task first subtype) [partial]} Storage_Size may be specified for a task first subtype that is not an interface via an attribute_definition_clause.
Wording Changes from Ada 95

3.a/2

{00345AI95−00345−01} We don't allow specifying Storage_Size on task interfaces. We don't need to mention class−wide task types, because these cannot be a first subtype.