1-- C66002G.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-- CHECK THAT OVERLOADED SUBPROGRAM DECLARATIONS
26-- ARE PERMITTED IN WHICH THERE IS A MINIMAL
27-- DIFFERENCE BETWEEN THE DECLARATIONS.
28
29--     (G) THE RESULT TYPE OF TWO FUNCTION DECLARATIONS IS DIFFERENT.
30
31-- CVP 5/4/81
32-- JRK 5/8/81
33-- NL 10/13/81
34-- SPS 10/26/82
35
36WITH REPORT;
37PROCEDURE C66002G IS
38
39     USE REPORT;
40
41BEGIN
42     TEST ("C66002G", "SUBPROGRAM OVERLOADING WITH " &
43           "MINIMAL DIFFERENCES ALLOWED");
44
45     --------------------------------------------------
46
47     -- THE RESULT TYPES OF TWO FUNCTION
48     -- DECLARATIONS ARE DIFFERENT.
49
50     DECLARE
51          I : INTEGER;
52          B : BOOLEAN;
53          S : STRING (1..2) := "12";
54
55          FUNCTION F RETURN INTEGER IS
56          BEGIN
57               S(1) := 'A';
58               RETURN IDENT_INT (0); -- THIS VALUE IS IRRELEVENT.
59          END F;
60
61          FUNCTION F RETURN BOOLEAN IS
62          BEGIN
63               S(2) := 'B';
64               RETURN IDENT_BOOL (TRUE); -- THIS VALUE IS IRRELEVANT.
65          END F;
66
67     BEGIN
68          I := F;
69          B := F;
70
71          IF S /= "AB" THEN
72               FAILED ("FUNCTIONS DIFFERING ONLY IN " &
73                       "BASE TYPE OF RETURNED VALUE " &
74                       "CAUSED CONFUSION");
75          END IF;
76     END;
77
78     --------------------------------------------------
79
80     RESULT;
81
82END C66002G;
83