CVS difference for acats/new/b35a001.a

Differences between 1.1 and version 1.2
Log of other versions for file acats/new/b35a001.a

--- acats/new/b35a001.a	2017/03/30 08:54:57	1.1
+++ acats/new/b35a001.a	2017/03/31 03:56:14	1.2
@@ -56,6 +56,14 @@
 --            visible part of a package cannot name a deferred constant,
 --            even if the completion of that constant is static -
 --            13.14(7.2/3) and 13.14(18).
+--        (G) The Small aspect must not be given on a private type even
+--            if the full type is a fixed point type - implied by 13.1(9/5).
+--            [Note: This rule appears to be missing from the RM, it will
+--            get added soon; we test it anyway as it follows from the
+--            rules for representation items.]
+--        (H) The expression for the Small aspect of a type must resolve to
+--            the same entities at the first freezing point as at the end of
+--            the declaration list - 13.1.1(13/3).
 --
 --     We try only a handful of examples of each of these rules; we're trying
 --     to ensure that a check for the rule exists in the implementation, not
@@ -72,10 +80,13 @@
 --
 -- CHANGE HISTORY:
 --     29 Mar 17   RLB     Created test.
+--     30 Mar 17   RLB     Added additional checks.
 --
 --!
 procedure B35A001 is
 
+   Outer_Small : constant := 1.0/16.0;
+
    package Pack is
       type Tst1 is delta 0.5 range -4.0 .. 4.0
          with Small => 0.125;           -- OK. {1:7;1}
@@ -111,6 +122,12 @@
       type TstA is delta 0.5 range -4.0 .. 4.0
          with Small => Def_Small;       -- POSSIBLE ERROR: [Set06] (F) {1:7;1}
 
+      type TstB is private
+         with Small => A_Small;         -- ERROR: (G) {1:7;1}
+
+      type TstC is delta 0.5 range -4.0 .. 4.0
+         with Small => Outer_Small;     -- POSSIBLE ERROR: [Set07] (H) {1:7;1}
+
       -- Static:
       FCnst : constant Float := 1.0/8.0;
       A_Small : constant := 1.0/4.0;
@@ -119,17 +136,26 @@
 
       Sml_Small : constant := 1.0/8.0;  -- POSSIBLE ERROR: [Set05] (E) {7;1}
 
+      ObjC : TstC := 2.0; -- Freezes TstC, Small = B35A001.Outer_Small.
+                                        -- POSSIBLE ERROR: [Set07] (H) {1:7;1}
+      Outer_Small : constant := 1.0/8.0;-- POSSIBLE ERROR: [Set07] (H) {7;1}
+                                        -- Different declaration of Outer_Small
       -- Not static:
       FVar : Float := 1.0/8.0;          -- POSSIBLE ERROR: [Set01] (A) {7;1}
 
       -- Deferred:
       Def_Small : constant Float;       -- POSSIBLE ERROR: [Set06] (F) {7;1}
 
-   private
-      Hidden_Small : constant := 1.0/8.0;-- POSSIBLE ERROR: [Set04] (D) {7;1}
+      -- Resolution recheck here.
+   private                              -- POSSIBLE ERROR: [Set07] (H) {1:7;1}
 
+      Hidden_Small : constant
+                        := 1.0/8.0;     -- POSSIBLE ERROR: [Set04] (D) {1:7;1}
+
       Def_Small : constant Float
                       := 1.0/8.0;       -- POSSIBLE ERROR: [Set06] (F) {1:7;1}
+
+      type TstB is delta 0.5 range -4.0 .. 4.0; -- OPTIONAL ERROR: {7;1}
    end Pack;
 
 begin

Questions? Ask the ACAA Technical Agent