CVS difference for ai05s/ai05-0191-1.txt

Differences between 1.7 and version 1.8
Log of other versions for file ai05s/ai05-0191-1.txt

--- ai05s/ai05-0191-1.txt	2010/12/15 00:10:59	1.7
+++ ai05s/ai05-0191-1.txt	2011/01/17 07:00:31	1.8
@@ -1,4 +1,4 @@
-!standard 13.3(9/1)                                10-11-19  AI05-0191-1/05
+!standard 13.3(9/1)                                11-01-07  AI05-0191-1/06
 !standard 13.3(73)
 !class amendment 09-11-03
 !status Amendment 2012 10-11-18
@@ -159,14 +159,73 @@
 the referential nature of the actual argument requires a deviation from
 the normal model of functions.
 
-
 !example
+
+   procedure Cnt (A: in out Arrtype; B : in Arrtype) with
+      Pre => not A'Overlaps_Storage(B)
+   is
+     -- intended to count in A the number of value occurrences in B
+     -- part of a distribution sort
+   begin
+      for I in B'range loop
+         A(B(I)) := A(B(I)) + 1;
+      end loop;
+   end Cnt;
+
+!corrigendum 13.03(9/1)
+
+@drepl
+The following representation attributes are defined: Address, Alignment, Size,
+Storage_Size, and Component_Size.
+@dby
+The following representation attributes are defined: Address, Alignment, Size,
+Storage_Size, Component_Size, Has_Same_Storage, and Overlaps_Storage.
+
+!corrigendum 13.03(73)
+
+@dinsa
+@xbullet<An implementation should support specified Component_Sizes that are factors
+and multiples of the word size. For such Component_Sizes, the array should contain
+no gaps between components. For other Component_Sizes (if supported), the array
+should contain no gaps between components when packing is also specified; the
+implementation should forbid this combination in cases where it cannot support
+a no-gaps representation.>
+@dinss
+@s8<@i<Static Semantics>>
+
+For a prefix X that denotes an object:
+
+@xhang<@xterm<X'Has_Same_Storage>
+X'Has_Same_Storage denotes a function with the following specification:>
+
+@xcode<        @b<function> X'Has_Same_Storage (@i<X> : @i<any_type>)
+             @b<return> Boolean>
+
+@xindent<The actual parameter shall be a name that denotes an object. The object denoted
+by the actual parameter can be of any type. This function evaluates the names
+of the objects involved and returns true if the representation of the object
+denoted by the actual parameter occupies exactly the same bits as the
+representation of the object denoted by X; it is false otherwise.>
+
+For a prefix X that denotes an object:
+
+@xhang<@xterm<X'Overlaps_Storage>
+X'Overlaps_Storage denotes a function with the following specification:>
+
+@xcode<        @b<function> X'Overlaps_Storage (@i<X> : @i<any_type>)
+             @b<return> Boolean>
+
+@xindent<The actual parameter shall be a name that denotes an object. The object denoted
+by the actual parameter can be of any type. This function evaluates the names
+of the objects involved and returns true if the representation of the object
+denoted by the actual parameter shares at least one bit with the representation
+of the object denoted by X; it is false otherwise.>
 
-procedure Exchange_Values(A, B: ref_type) Assert(not A'IsSame(B));
+@xindent<@s9<NOTES@hr
+7  X'Has_Same_Storage(Y) implies X'Overlaps_Storage(Y).>>
 
-Assert(not A'Overlaps_Storage(B(i)));  A(B(i)) := A(B(i)) + 1;
-   -- intended to count in A the number of value occurrences in B
-   -- part of a distribution sort
+@xindent<@s9<8  X'Has_Same_Storage(Y) and X'Overlaps_Storage(Y) are not considered
+to be reads of X and Y.>>
 
 !ACATS test
 
@@ -175,7 +234,7 @@
 !ASIS
 
 Add two literals An_Is_Same_Attribute and An_Overlaps_Storage_Attribute to
-Attritbute_Kinds.
+Attribute_Kinds.
 
 
 !appendix

Questions? Ask the ACAA Technical Agent