1-- C87B62B.ADA
2
3--                             Grant of Unlimited Rights
4--
5--     Under contracts F33600-87-D-0337, F33600-84-D-0280, MDA903-79-C-0687,
6--     F08630-91-C-0015, and DCA100-97-D-0025, the U.S. Government obtained
7--     unlimited rights in the software and documentation contained herein.
8--     Unlimited rights are defined in DFAR 252.227-7013(a)(19).  By making
9--     this public release, the Government intends to confer upon all
10--     recipients unlimited rights  equal to those held by the Government.
11--     These rights include rights to use, duplicate, release or disclose the
12--     released technical data and computer software in whole or in part, in
13--     any manner and for any purpose whatsoever, and to have or permit others
14--     to do so.
15--
16--                                    DISCLAIMER
17--
18--     ALL MATERIALS OR INFORMATION HEREIN RELEASED, MADE AVAILABLE OR
19--     DISCLOSED ARE AS IS.  THE GOVERNMENT MAKES NO EXPRESS OR IMPLIED
20--     WARRANTY AS TO ANY MATTER WHATSOEVER, INCLUDING THE CONDITIONS OF THE
21--     SOFTWARE, DOCUMENTATION OR OTHER INFORMATION RELEASED, MADE AVAILABLE
22--     OR DISCLOSED, OR THE OWNERSHIP, MERCHANTABILITY, OR FITNESS FOR A
23--     PARTICULAR PURPOSE OF SAID MATERIAL.
24--*
25-- OBJECTIVE:
26--     CHECK THAT OVERLOADING RESOLUTION USES THE RULE THAT:
27--
28--       IN A LENGTH CLAUSE THAT SPECIFIES 'STORAGE_SIZE,
29--       THE EXPRESSION MUST BE OF SOME INTEGER TYPE.
30--       ACCESS TYPES ARE HERE; TASK TYPES ARE IN C87B62D.DEP.
31
32-- HISTORY:
33--     TRH 09/08/82  CREATED ORIGINAL TEST.
34--     EG  06/04/84
35--     PWB 01/19/86  CLARIFIED COMMENTS REGARDING NON-APPLICABILITY;
36--                   REMOVED TEXT NOT RELATED TO TEST OBJECTIVE
37--                   MOVED TASK TYPES TO C87B62D.DEP.
38--     BCB 01/04/88  MODIFIED HEADER.
39--     PWB 05/11/89  CHANGED EXTENSION FROM '.DEP' TO '.ADA'.
40
41WITH REPORT; USE REPORT;
42
43PROCEDURE C87B62B IS
44
45     TYPE POS_FIX IS DELTA 0.1 RANGE 0.0 .. 10.0;
46     TYPE POS_INT IS NEW INTEGER RANGE 0 .. INTEGER'LAST;
47     TYPE NUMERAL IS NEW CHARACTER RANGE '0' .. '9';
48     TYPE BASE_5  IS ('0', '1', '2', '3', '4');
49     ERR : BOOLEAN := FALSE;
50
51     FUNCTION F (X : INTEGER) RETURN NUMERAL IS
52     BEGIN
53          ERR := TRUE;
54          RETURN ('9');
55     END F;
56
57     FUNCTION F (X : INTEGER) RETURN BASE_5 IS
58     BEGIN
59          ERR := TRUE;
60          RETURN ('4');
61     END F;
62
63     FUNCTION F (X : INTEGER) RETURN POS_FIX IS
64     BEGIN
65          ERR := TRUE;
66          RETURN POS_FIX (X);
67     END F;
68
69     FUNCTION F (X : INTEGER) RETURN POS_INT IS
70     BEGIN
71          RETURN POS_INT (X);
72     END F;
73
74BEGIN
75     TEST ("C87B62B","OVERLOADED EXPRESSION WITHIN LENGTH CLAUSE " &
76                     "- SPECIFICATION OF ATTRIBUTE T'STORAGE_SIZE " &
77                     "FOR ACCESS TYPES");
78
79     DECLARE
80
81          TYPE DECEM IS NEW INTEGER RANGE    1 .. 10;
82          TYPE LINK  IS ACCESS DECEM;
83
84          TYPE JUST_LIKE_LINK IS ACCESS DECEM;
85          TYPE CHECK IS ACCESS DECEM;
86
87          FOR CHECK'STORAGE_SIZE
88               USE 1024;
89          FOR LINK'STORAGE_SIZE USE F (1024);
90
91     BEGIN
92          IF ERR THEN
93               FAILED ("RESOLUTION INCORRECT FOR EXPRESSION IN " &
94                       "LENGTH CLAUSE USING 'STORAGE_SIZE");
95          END IF;
96     END;
97
98     RESULT;
99END C87B62B;
100