It sounds like there has been some confusion in this discussion
about <obj>'size vs. <subtype>'size. As far as I am concerned,
there is *no* difference in <obj>'size between Ada 83 and Ada 95.
The only issue was <subtype>'size, where in Ada 95, it might
better be called the "value" size, whereas in Ada 83, it varied
between compilers, but it seems like a good number of them interpreted
the <subtype>'size as the "typical object" size. This was somewhat
contradicted by the special case of Boolean'size which was required
to be 1. In fact, it was this special case which set the 9x design
team off toward interpreting <subtype>'size as a value size. From
some people's perspective, we went awry. However, I don't remember
any complaints about the Ada 95 (or Ada 83) definition of <object>'size.
Note that the GNAT attributes 'Object_Size and 'Value_Size are both
applied to *subtype*s only, and correspond to "typical object" size
and "value" size. Also, GNAT allows these two to be specified on
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.
-Tucker Taft [log in to unmask]