PowerAda 44
From OC Systems Wiki!
< PowerAda:APPENDIX C. Implementation Characteristics | Annex M
Revision as of 10:03, 24 April 2019 by imported>WikiVisor
(44) Any restrictions placed upon representation items.
See 13.1(20).
- enumeration_representation_clause
- Representation clauses for enumeration types are supported for all types except for types derived from the predefined type BOOLEAN. The value specified for the enumeration type must fit in 32 bits (i.e., must be in the range SYSTEM.MIN_INT ..SYSTEM.MAX_INT).
- record_representation_clause
- No restrictions are placed on record_representation_clauses.
- Component_Size clause
- Component_Size clauses are supported in record representation clauses as described in Section 13.5.1 of the RM. Component_Size clauses are not supported in a record_definition.
- External_Tag clause
- There is no practical limit to the size of a user specified external tag.
- Small clause
- The value of the expression of the length clause must not be greater than the delta attribute of the first named subtype.
- Bit_Order clause
- The 'bit_order attribute can only be set to SYSTEM.HIGH_ORDER_FIRST.
- Storage_Size clause
- Storage_Size clauses are supported for both task and access types. The only restriction is that the size specified must be available from the global heap.
- Read clause
- The 'Read clause has no additional restrictions other than those specified in 13.13.2(36).
- Write clause
- The 'Write clause has no additional restrictions other than those specified in 13.13.2(36).
- Input clause
- The 'Input clause has no additional restrictions other than those specified in 13.13.2(36).
- Output clause
- The 'Output clause has no additional restrictions other than those specified in 13.13.2(36).
- Machine_Radix clause
- The only allowed value of the Machine_Radix attribute is 2.
- pragma Pack
- No restrictions are placed on pragma Pack.
- pragmas Import, Export, and Convention (when applied to a type)
- There are no restrictions on the use of these pragmas.
- pragmas Atomic and Volatile (when applied to a type)
- Pragmas Atomic and Volatile have no additional restrictions other than those specified in annex C.6.
- pragmas Atomic_Components and Volatile_Components (when applied to an array type)
- Pragmas Atomic_Components and Volatile_Components have no additional restrictions other than those specified in annex C.6.
- pragma Discard_Names (when applied to an enumeration or tagged type)
- There are no additional restrictions for pragma DISCARD_NAMES over what is specified in annex C.5.
- Alignment clause (when applied to a first subtype)
- The only allowed alignment clause values are 1, 2, 4, and 8 (bytes).
- Size clause (when applied to a first subtype)
- In a size specification of the formfor T'SIZE use Expression;
where T is a scalar type, the expression may not be greater than 32. That is, the maximum space that may be allocated to scalar objects is 32 bits.
- Address clause
- Address clauses are supported for objects and task entries only. Address clauses are also supported for subprograms but the address specified must be of a user initialized function descriptor.
- Size clause (when applied to an object)
- There are no additional restrictions for size clauses.
- pragmas Import, Export, and Convention (when applied to anything other than a type)
- There are no restrictions on the use of these pragmas. However, the user is strongly discouraged from applying pragma EXPORT to Ada subprograms which have parameters or function results of an unconstrained type, since only the most pessimistic assumptions may be made about the attributes of the actual parameters.
- pragmas Atomic and Volatile (when applied to an object or a component)
- Objects to which an Atomic or Volatile pragma are applied must be equal to or less then 32 bits in size..
- pragmas Atomic_Components and Volatile_Components (when applied to an array object)
- The size of a component to which pragma Atomic or Volatile are applied must be 32 bits or less..
- pragma Discard_Names (when applied to an exception)
- There are no additional restrictions for Discard_Names..
- pragma Asynchronous (applies to procedures)
- Pragma Asynchronous is not yet implemented.