VASG Issue Number: 0222 Comment Author: Paul Menchini Comment Number: 01 Comment Date: 1991/03/22 The prefix of 'LENGTH must be "appropriate for an array object, or an alias thereof, or [it must denote] a constrained array subtype." (LRM Section 14.1, the prefix description for the 'LENGTH attribute, on page 14-5.) The value returned by a function call is just that: a value. (Paragraph 2 of Section 6.1 states: "If the prefix of a name is a function call, then the name denotes an element, a slice, or an attribute, either of the result of the function call, or (if the result is an access value) of the object returned by the result." Therefore, the example is defective. The function F returns a Bit_Vector value, not a Bit_Vector object. Therefore, "F'Length" cannot be interpreted as applying the suffix to the result of the function call. A more appropriate example for this issue is: package P type T is access Bit_Vector; function F return T; attribute length: Integer; attribute length of F: function is 5; end P;