The nesting of atomic objects gives much scope for
confusion, but to disallow them would be backwardly incompatible, so
a new aspect
Full_Access_Only is added. This
can be applied to atomic and volatile types and objects to indicate that
no atomic (or full access) objects are permitted as subcomponents. If
any subcomponent of a full access object is accessed, then the whole
object has to be accessed, by an atomic read followed by an atomic write.