1-- C55B06B.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 LOOPS MAY BE SPECIFIED FOR DERIVED BOOLEAN AND 26-- DERIVED DERIVED BOOLEAN. 27 28-- DAT 3/26/81 29-- SPS 3/2/83 30 31WITH REPORT; USE REPORT; 32 33PROCEDURE C55B06B IS 34 35 TYPE E IS (FALSE, TRUE); 36 TYPE B1 IS NEW BOOLEAN; 37 TYPE B2 IS NEW B1; 38 TYPE B3 IS NEW E; 39 40 ONE : INTEGER := IDENT_INT (1); 41 COUNT : INTEGER := 0; 42 OLD_COUNT : INTEGER := 0; 43 44 PROCEDURE Q IS 45 BEGIN 46 COUNT := COUNT + 1; 47 END Q; 48 49BEGIN 50 TEST ("C55B06B", "LOOPS OVER DERIVED BOOLEAN"); 51 52 FOR I IN BOOLEAN LOOP 53 Q; 54 END LOOP; 55 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 56 FAILED ("LOOP 1"); 57 ELSE 58 OLD_COUNT := COUNT; 59 END IF; 60 61 FOR I IN BOOLEAN RANGE FALSE .. TRUE LOOP 62 Q; 63 END LOOP; 64 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 65 FAILED ("LOOP 2"); 66 ELSE 67 OLD_COUNT := COUNT; 68 END IF; 69 70 FOR I IN BOOLEAN'(FALSE) .. TRUE LOOP 71 Q; 72 END LOOP; 73 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 74 FAILED ("LOOP 3"); 75 ELSE 76 OLD_COUNT := COUNT; 77 END IF; 78 79 FOR I IN E LOOP 80 Q; 81 END LOOP; 82 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 83 FAILED ("LOOP 4"); 84 ELSE 85 OLD_COUNT := COUNT; 86 END IF; 87 88 FOR I IN E RANGE FALSE .. TRUE LOOP 89 Q; 90 END LOOP; 91 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 92 FAILED ("LOOP 5"); 93 ELSE 94 OLD_COUNT := COUNT; 95 END IF; 96 97 FOR I IN FALSE .. E'(TRUE) LOOP 98 Q; 99 END LOOP; 100 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 101 FAILED ("LOOP 6"); 102 ELSE 103 OLD_COUNT := COUNT; 104 END IF; 105 106 FOR I IN B1 LOOP 107 Q; 108 END LOOP; 109 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 110 FAILED ("LOOP 7"); 111 ELSE 112 OLD_COUNT := COUNT; 113 END IF; 114 115 FOR I IN B1 RANGE FALSE .. TRUE LOOP 116 Q; 117 END LOOP; 118 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 119 FAILED ("LOOP 8"); 120 ELSE 121 OLD_COUNT := COUNT; 122 END IF; 123 124 FOR I IN FALSE .. B1'(TRUE) LOOP 125 Q; 126 END LOOP; 127 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 128 FAILED ("LOOP 9"); 129 ELSE 130 OLD_COUNT := COUNT; 131 END IF; 132 133 FOR I IN B2 LOOP 134 Q; 135 END LOOP; 136 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 137 FAILED ("LOOP 10"); 138 ELSE 139 OLD_COUNT := COUNT; 140 END IF; 141 142 FOR I IN B2 RANGE FALSE .. TRUE LOOP 143 Q; 144 END LOOP; 145 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 146 FAILED ("LOOP 11"); 147 ELSE 148 OLD_COUNT := COUNT; 149 END IF; 150 151 FOR I IN B2'(FALSE) .. TRUE LOOP 152 Q; 153 END LOOP; 154 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 155 FAILED ("LOOP 12"); 156 ELSE 157 OLD_COUNT := COUNT; 158 END IF; 159 160 FOR I IN B3 LOOP 161 Q; 162 END LOOP; 163 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 164 FAILED ("LOOP 13"); 165 ELSE 166 OLD_COUNT := COUNT; 167 END IF; 168 169 FOR I IN B3 RANGE FALSE .. TRUE LOOP 170 Q; 171 END LOOP; 172 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 173 FAILED ("LOOP 14"); 174 ELSE 175 OLD_COUNT := COUNT; 176 END IF; 177 178 FOR I IN FALSE .. B3'(TRUE) LOOP 179 Q; 180 END LOOP; 181 IF OLD_COUNT + IDENT_INT (2) /= COUNT THEN 182 FAILED ("LOOP 15"); 183 ELSE 184 OLD_COUNT := COUNT; 185 END IF; 186 187 RESULT; 188 END C55B06B; 189