> It sounds like there has been some confusion in this discussion
> about <obj>'size vs. <subtype>'size. As far as I am concerned,
Yes, there has. I tried very hard to make it clear that I was talking
about the size of the object NOT of a type, but it seems I failed.
> there is *no* difference in <obj>'size between Ada 83 and Ada 95.
The difference in terminology--representation vs. allocation--was where I
had trouble. Then someone pointed out that representation IS defined in a
-> Don't forget to read 13.1(7) to interpret what representation means:
-> (7) The representation of an object consists of a certain number
-> of bits (the size of the object). These are the bits that are
-> normally read or updated by the machine code when loading,
-> storing, or operating-on the value of the object. This includes
-> some padding bits, when the size of the object is greater than
-> the size of its subtype. Such padding bits are considered to be
-> part of the representation of the object, rather than being
-> gaps between objects, if these bits are normally read and updated.
Back to Tucker Taft:
> I highly recommend in all future discussions on this topic that
> each mention be very clear as to whether it refers to <obj>'Size or
> to <subtype>'Size. If you are saying that Rational was doing
> something weird with <obj>'Size, then I agree that is bad news.
> If they are reporting <subtype>'Size as less than <obj>'Size,
> that is normal for many scalar subtypes in Ada 95.
13.1(7) clears it up. If only it had been in the glossary. This makes it
plain that GNAT is correct and Apex 3.0.0 is incorrect. Thanks to all,
but especially to Tucker and the fellow that pointed me to 13.1(7).