CVS difference for 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