RM 13 3 14-19 Address Clauses (GNAT Reference Manual)

### 6.18 RM 13.3(14-19): Address Clauses ¶

> “For an array `X`, `X'Address` should point at the first component of the array, and not at the array bounds.”

Followed.

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

> `X'Address` should produce a useful result if `X` is an object that is aliased or of a by-reference type, or is an entity whose `Address` has been specified.”

Followed. A valid address will be produced even if none of those conditions have been met. If necessary, the object is forced into memory to ensure the address is valid.

> “An implementation should support `Address` clauses for imported subprograms.”

Followed.

> “Objects (including subcomponents) that are aliased or of a by-reference type should be allocated on storage element boundaries.”

Followed.

> “If the `Address` of an object is specified, or it is imported or exported, then the implementation should not perform optimizations based on assumptions of no aliases.”

Followed.