3 -- Grant of Unlimited Rights
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
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.
25 -- CHECK THAT DEFAULT GENERIC SUBPROGRAM PARAMETERS WORK CORRECTLY,
26 -- INCLUDING OVERLOADED AND PREDEFINED OPERATOR_SYMBOLS,
27 -- AND SUBPROGRAMS HIDDEN AT THE INSTANTIATION.
28 -- BOTH KINDS OF DEFAULTS ARE TESTED, FOR BOTH PROCEDURES
35 WITH REPORT
; USE REPORT
;
39 FUNCTION "-" (R
, S
: INTEGER) RETURN INTEGER;
41 FUNCTION NEXT
(X
: INTEGER) RETURN INTEGER;
43 PROCEDURE BUMP
(X
: IN OUT INTEGER);
46 WITH FUNCTION "*" (A
, B
: INTEGER) RETURN INTEGER IS "-";
47 WITH FUNCTION "+" (R
, S
: INTEGER) RETURN INTEGER IS
49 WITH FUNCTION "-" (A
, B
: INTEGER) RETURN INTEGER IS <> ;
50 WITH FUNCTION NEXTO
(Q
: INTEGER) RETURN INTEGER IS NEXT
;
51 WITH PROCEDURE BUMPO
(A
: IN OUT INTEGER) IS BUMP
;
52 WITH FUNCTION NEXT
(Q
: INTEGER) RETURN INTEGER IS <> ;
53 WITH PROCEDURE BUMP
(Q
: IN OUT INTEGER) IS <> ;
54 TYPE INTEGER IS RANGE <> ;
55 WITH FUNCTION "*" (A
, B
: INTEGER) RETURN INTEGER IS <> ;
56 WITH FUNCTION "-" (A
, B
: INTEGER) RETURN INTEGER IS <> ;
57 WITH FUNCTION NEXT
(Q
: INTEGER) RETURN INTEGER IS <> ;
58 WITH PROCEDURE BUMP
(Z
: IN OUT INTEGER) IS <> ;
60 SUBTYPE INT
IS STANDARD
.INTEGER;
64 TYPE NEWINT
IS NEW INTEGER RANGE -1000 .. 1000;
66 FUNCTION PLUS
(Q1
, Q2
: INTEGER) RETURN INTEGER RENAMES "+";
68 FUNCTION "+" (X
, Y
: INTEGER) RETURN INTEGER IS
70 RETURN PLUS
(X
, PLUS
(Y
, -10));
74 FUNCTION "-" (R
, S
: INTEGER) RETURN INTEGER IS
80 FUNCTION NEXT
(X
: INTEGER) RETURN INTEGER IS
87 PROCEDURE BUMP
(X
: IN OUT INTEGER) IS
97 W
:= NEXT
(INTEGER'(3) * 4 - 2);
98 -- (W := (4 ** 3 - 2) - 1)
103 WI := NEXT (INT'(3) * 4 - 2 + NEXTO
(0));
104 -- (3 * 4) => (3 - 4) => (-3 + 4 - 10) = -9
105 -- ((-9) - 2) => (2 + 2 - (-9) - 20) = -7
106 -- (-7 + (-9)) => -16
107 -- (WI := 7 - (-16)) => (WI := 23)
109 -- (WI := 23 - 9) (= 14)
111 -- (WI := 14 - 9) (= 5)
112 DIFF
:= STANDARD
."-" (INT
(W
), WI
);
113 -- (DIFF := 68 - 5) (= 63)
116 FUNCTION "*" (Y
, X
: NEWINT
) RETURN NEWINT
IS
118 RETURN X
** INTEGER(Y
);
122 FUNCTION NEXT
(Z
: NEWINT
) RETURN NEWINT
IS
128 PROCEDURE BUMP
(ZZ
: IN OUT NEWINT
) IS
130 FAILED
("WRONG PROCEDURE CALLED");
133 TEST
("CC1301A", "DEFAULT GENERIC SUBPROGRAM PARAMETERS");
136 PROCEDURE BUMP
(QQQ
: IN OUT NEWINT
) IS
142 FUNCTION NEXT
(Q7
: INTEGER) RETURN INTEGER IS
149 FUNCTION "-" (Q3
, Q4
: INTEGER) RETURN INTEGER IS
151 RETURN -Q3
+ Q4
+ Q4
;
152 -- (-Q3 + Q4 - 10 + Q4 - 10) = (Q4 + Q4 - Q3 - 20)
155 PACKAGE P1
IS NEW PKG
(INTEGER => NEWINT
);
158 IF P1
.DIFF
/= 63 THEN
159 FAILED
("WRONG DEFAULT SUBPROGRAM PARAMETERS");