1-- C83B02A.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 NESTED LOOPS CAN HAVE IDENTICALLY NAMED PARAMETERS,
26--    AND REFERENCES IN THE INNERMOST LOOP ARE ASSOCIATED WITH THE
27--    INNERMOST PARAMETER, ETC.
28
29
30--    RM     4 JUNE 1980
31
32
33WITH REPORT;
34PROCEDURE  C83B02A  IS
35
36     USE REPORT;
37
38     I , J , K : INTEGER := 1 ;
39
40BEGIN
41
42     TEST ( "C83B02A" ,
43            "CHECK THAT NESTED LOOPS CAN HAVE IDENTICALLY NAMED" &
44            " PARAMETERS" );
45
46                                                        --   I    J    K
47     FOR  LOOP_PAR  IN  2..2  LOOP
48          I := I * LOOP_PAR ;                           --   2    1    1
49          FOR  LOOP_PAR  IN  3..3  LOOP
50               I := I * LOOP_PAR ;                      --   6    1    1
51               FOR  LOOP_PAR  IN  5..5  LOOP
52                    I := I * LOOP_PAR ;                 --  30    1    1
53                    FOR  SECOND_LOOP_PAR  IN  7..7  LOOP
54                         J := J * SECOND_LOOP_PAR ;     --  30    7    1
55                         FOR  SECOND_LOOP_PAR  IN  11..11  LOOP
56                              J := J * SECOND_LOOP_PAR ;--  30   77    1
57                              FOR  SECOND_LOOP_PAR  IN  13..13  LOOP
58                                   J := J *
59                                        SECOND_LOOP_PAR;--  30 1001    1
60                              END LOOP;
61                              K := K * LOOP_PAR ;       --  30 1001    5
62                         END LOOP;
63                         K := K * LOOP_PAR ;            --  30 1001   25
64                    END LOOP;
65                    K := K * LOOP_PAR ;                 --  30 1001  125
66               END LOOP;
67               K := K * LOOP_PAR ;                      --  30 1001  375
68          END LOOP;
69          K := K * LOOP_PAR ;                           --  30 1001  750
70     END LOOP;
71
72     IF  I /= 30 OR J /= 1001 OR K /= 750  THEN
73           FAILED ( "DID NOT ACCESS INNERMOST ENCLOSING IDENTICALLY " &
74                    "NAMED LOOP PARAMETER IN NESTED LOOPS" );
75     END IF;
76
77     RESULT;
78
79END C83B02A;
80