Version 1.2 of acs/ac-00103.txt

Unformatted version of acs/ac-00103.txt version 1.2
Other versions for file acs/ac-00103.txt

!standard 13.5.1(11)          04-11-11 AC95-00103/01
!class confirmation 04-11-11
!status received no action 04-11-11
!status received 04-10-08
!subject Record representation clauses on type extensions
!summary
!appendix

!topic Record representation clauses on type extensions
!reference RM95 13.5.1
!from Adam Beneschan 04-10-08
!discussion

[second attempt, not sure the first one got through]

13.5.1(11) says, "Storage places within a component_list shall not
overlap" [with exceptions for variant parts].

13.5.1(14) says, "A record_representation_clause for a record
extension does not override the layout of the parent part; if the
layout was specified for the parent type, it is inherited by the
record extension."

What happens if a record_representation_clause for a record extension
specifies a storage place for a component in the extension part, that
overlaps with the storage place already determined for an inherited
component?  There doesn't appear to be anything that makes this
illegal, assuming that the storage place already determined for the
inherited component doesn't appear in the component_list.  (This falls
under the cases that 13.5.1(22) says that an implementation doesn't
need to support; however, it seems to me that this should be an
error.)

(Note also that "inherited component" above should be taken to include
discriminants of ancestor types that are not inherited, since space
needs to be reserved for them in type extensions even though they're
not visible in the view defined by the type extension.)

****************************************************************

From: Tucker Taft
Sent: Monday, October 11, 2004  8:44 PM

Admittedly the rule in 13.5.1(11) is strange, in that
it talks about the syntactic construct "component_list,"
rather than about the semantic notion of components.
This approach leaves out discriminants (since they are
in a separate syntactic construct, the discriminant_part).
As you point out, there may also be discriminants that
are "hidden", and there are the components of the parent.

Of course the general rule applies that a rep-clause
is illegal if the implementation does not support it.
I don't think this is worth fixing, personally, but
I agree that the existing wording is a bit bogus.

****************************************************************

Questions? Ask the ACAA Technical Agent