1-- C87B62D.TST
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--       TASK TYPE IS HERE; ACCESS TYPE IS IN C87B62B.DEP.
31
32-- MACRO SUBSTITUTION:
33--     $TASK_STORAGE_SIZE IS THE NUMBER OF STORAGE_UNITS REQUIRED FOR
34--     THE ACTIVATION OF A TASK.
35
36-- HISTORY:
37--     TRH 09/08/82  CREATED ORIGINAL TEST.
38--     EG  06/04/84
39--     PWB 01/19/86  CREATED THIS TEST FILE FROM THE TASK TYPE PART
40--                   OF THE OLD C87B62B;
41--                   CLARIFIED COMMENTS REGARDING NON-APPLICABILITY.
42--     BCB 01/04/88  MODIFIED HEADER.
43--     PWB 05/11/89  CHANGED EXTENSION FROM '.DEP' TO '.TST'.
44
45WITH REPORT; USE REPORT;
46
47PROCEDURE C87B62D IS
48
49     TASK_STORAGE_SIZE : CONSTANT := $TASK_STORAGE_SIZE;
50
51     TYPE POS_INT IS NEW INTEGER RANGE 0 .. INTEGER'LAST;
52     TYPE POS_FIX IS DELTA 0.1 RANGE 0.0 .. 10.0;
53     TYPE NUMERAL IS NEW CHARACTER RANGE '0' .. '9';
54     TYPE BASE_5  IS ('0', '1', '2', '3', '4');
55     ERR : BOOLEAN := FALSE;
56
57     FUNCTION F (X : INTEGER) RETURN NUMERAL IS
58     BEGIN
59          ERR := TRUE;
60          RETURN ('9');
61     END F;
62
63     FUNCTION F (X : INTEGER) RETURN BASE_5 IS
64     BEGIN
65          ERR := TRUE;
66          RETURN ('4');
67     END F;
68
69     FUNCTION F (X : INTEGER) RETURN POS_FIX IS
70     BEGIN
71          ERR := TRUE;
72          RETURN POS_FIX (X);
73     END F;
74
75     FUNCTION F (X : INTEGER) RETURN POS_INT IS
76     BEGIN
77          RETURN POS_INT (X);
78     END F;
79
80BEGIN
81     TEST ("C87B62D","OVERLOADED EXPRESSION WITHIN LENGTH CLAUSE " &
82           "- SPECIFICATION OF ATTRIBUTE T'STORAGE_SIZE " &
83           "FOR TASK TYPES ");
84
85     DECLARE
86
87          TASK TYPE TSK1  IS
88          END TSK1;
89
90          FOR TSK1'STORAGE_SIZE USE F (TASK_STORAGE_SIZE);
91
92          TASK BODY TSK1 IS
93          BEGIN
94               NULL;
95          END TSK1;
96
97     BEGIN
98          IF ERR THEN
99               FAILED ("RESOLUTION INCORRECT FOR EXPRESSION IN " &
100                       "LENGTH CLAUSE USING 'STORAGE_SIZE");
101          END IF;
102     END;
103
104     RESULT;
105END C87B62D;
106