1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690 1691 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 1747 1748 1749 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 1771 1772 1773 1774 1775 1776 1777 1778 1779 1780 1781 1782 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 1828 1829 1830 1831 1832 1833 1834 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 1918 1919 1920 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 2028 2029 2030 2031 2032 2033 2034 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 2063 2064 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 2147 2148 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 2165 2166 2167 2168 2169 2170 2171 2172 2173 2174 2175 2176 2177 2178 2179 2180 2181 2182 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 2233 2234 2235 2236 2237 2238 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 2434 2435 2436 2437 2438 2439 2440 2441 2442 2443 2444 2445 2446 2447 2448 2449 2450 2451 2452 2453 2454 2455 2456 2457 2458 2459 2460 2461 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485 2486 2487 2488 2489 2490 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 2769 2770 2771 2772 2773 2774 2775 2776 2777 2778 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 2797 2798 2799 2800 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 2901 2902 2903 2904 2905 2906 2907 2908 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 2925 2926 2927 2928 2929 2930 2931 2932 2933 2934 2935 2936 2937 2938 2939 2940 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 2956 2957 2958 2959 2960 2961 2962 2963 2964 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 3061 3062 3063 3064 3065 3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 3087 3088 3089 3090 3091 3092 3093 3094 3095 3096 3097 3098 3099 3100 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 3116 3117 3118 3119 3120 3121 3122 3123 3124 3125 3126 3127 3128 3129 3130 3131 3132 3133 3134 3135 3136 3137 3138 3139 3140 3141 3142 3143 3144 3145 3146 3147 3148 3149 3150 3151 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 3194 3195 3196 3197 3198 3199 3200 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210 3211 3212 3213 3214 3215 3216 3217 3218 3219 3220 3221 3222 3223 3224 3225 3226 3227 3228 3229 3230 3231 3232 3233 3234 3235 3236 3237 3238 3239 3240 3241 3242 3243 3244 3245 3246 3247 3248 3249 3250 3251 3252 3253 3254 3255 3256 3257 3258 3259 3260 3261 3262 3263 3264 3265 3266 3267 3268 3269 3270 3271 3272 3273 3274
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<TITLE>Ada 95 Technical Corrigendum</TITLE>
<META NAME="Author" CONTENT="JTC 1/SC 22/WG 9/ARG, by Randall Brukardt, ARG Editor">
<META NAME="GENERATOR" CONTENT="AICorr.Exe, Corrigedum generator">
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<H1 ALIGN=CENTER><FONT FACE="Arial, Helvetica"><FONT SIZE=+2><B>International Standard ISO/IEC 8652:1995</B></FONT></FONT></H1>
<H1 ALIGN=CENTER><FONT FACE="Arial, Helvetica"><B>Programming languages -- Ada<BR>
TECHNICAL CORRIGENDUM 1</B></FONT></H1>
<P></P>
<P></P>
<H1 ALIGN=CENTER><FONT FACE="Arial, Helvetica"><B><I>Langages de programmation -- Ada<BR>
RECTIFICATIF TECHNIQUE 1</I></B></FONT></H1>
<P></P>
<P>Technical Corrigendum 1 to International Standard ISO/IEC 8652:1995 was
prepared by AXE Consulting under contract from The MITRE Corporation.</P>
<P></P>
<P>© 2000, The MITRE Corporation. All Rights Reserved.</P>
<P></P>
<P>This document may be copied, in whole or in part, in any form or by any
means, as is, or with alterations, provided that (1) alterations are
clearly marked as alterations and (2) this copyright notice is included
unmodified in any copy. Any other use or distribution of this document
is prohibited without the prior express permission of MITRE.</P>
<P>You use this document on the condition that you indemnify and hold
harmless MITRE, its Board of Trustees, officers, agents, and employees,
from any and all liability or damages to yourself or your hardware or
software, or third parties, including attorneys' fees, court costs, and
other related costs and expenses, arising out of your use of this
document irrespective of the cause of said liability.</P>
<P></P>
<P>MITRE MAKES THIS DOCUMENT AVAILABLE ON AN "AS IS" BASIS AND MAKES NO
WARRANTY, EXPRESS OR IMPLIED, AS TO THE ACCURACY, CAPABILITY, EFFICIENCY
MERCHANTABILITY, OR FUNCTIONING OF THIS DOCUMENT. IN NO EVENT WILL
MITRE BE LIABLE FOR ANY GENERAL, CONSEQUENTIAL, INDIRECT, INCIDENTAL,
EXEMPLARY, OR SPECIAL DAMAGES, EVEN IF MITRE HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.</P>
<P></P>
<H3><FONT FACE="Arial, Helvetica">Introduction</FONT></H3>
<P>This corrigendum contains corrections to the Ada 95 standard [ISO/IEC 8652:1995].</P>
<P>The corrigendum is organized by sections corresponding to those in the Ada 95 standard. These
sections include wording changes to the Ada 95 standard. Clause and subclause
headings are given for each clause that contains a wording change. Other
clauses are omitted. For each change, a reference to the defect report(s)
that prompted the wording change is included in the form [8652/0000]. The
defect reports have been developed by the ISO/IEC JTC 1/SC 22/WG 9 Ada Rapporteur
Group to address specific questions about the Ada standard. Refer to the
defect reports for details on the issues.</P>
<P>For each change, an <I>anchor</I> paragraph from the original Ada 95 standard is given.
New or revised text and instructions are given with each change. The anchor paragraph
can be replaced or deleted, or text can be inserted before or after it. When a heading immediately
precedes the anchor paragraph, any text inserted before the paragraph is intended
to appear under the heading.</P>
<P>Typographical conventions:</P>
<P><B><FONT FACE="Arial, Helvetica">Instructions about the text changes are in this font.</FONT></B>
The actual text changes are in the same fonts as the Ada 95 standard -
this font for text,
<FONT FACE="Arial, Helvetica"> this font for syntax,</FONT>
<TT> and this font for Ada source code.</TT>
Note that this document is designed to be viewed with the default font as some Roman font,
similar to the Ada 95 standard. This may require some adjustments to your browser.</P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 1: General</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">1.2 Normative References</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0001">8652/0001</A>]
</FONT></B></P>
<UL><P>ISO/IEC 10646-1:1993, <I>Information technology -- Universal Multiple-Octet
Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual
Plane</I>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>ISO/IEC 10646-1:1993, <I>Information technology -- Universal Multiple-Octet
Coded Character Set (UCS) -- Part 1: Architecture and Basic Multilingual
Plane</I>, supplemented by Technical Corrigendum 1:1996.
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 2: Lexical Elements</FONT></H2>
<P></P>
<P>No changes in this section.</P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 3: Declarations and Types</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">3.3.1 Object Declarations</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0002">8652/0002</A>]
</FONT></B></P>
<P><UL><DL>
<DT> 3.<DD>The object is created, and, if there is not an initialization
expression, any per-object expressions (see 3.8) are evaluated
and any implicit initial values for the object or for its
subcomponents are obtained as determined by the nominal subtype.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT> 3.<DD>The object is created, and, if there is not an initialization
expression, any per-object constraints (see 3.8) are elaborated
and any implicit initial values for the object or for its
subcomponents are obtained as determined by the nominal subtype.</DL></UL></P>
<H3><FONT FACE="Arial, Helvetica">3.5.4 Integer Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 27: [<A HREF="defect1.html#8652/0003">8652/0003</A>]
</FONT></B></P>
<UL><P>For a one's complement machine, the high bound of the base range of a
modular type whose modulus is one less than a power of 2 may be equal to the
modulus, rather than one less than the modulus. It is implementation defined
for which powers of 2, if any, this permission is exercised.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>For a one's complement machine, implementations may support non-binary modulus
values greater than System.Max_Nonbinary_Modulus. It is implementation defined
which specific values greater than System.Max_Nonbinary_Modulus, if any, are
supported.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.5.8 Operations of Floating Point Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0004">8652/0004</A>]
</FONT></B></P>
<P><UL><DL>
<DT>S'Digits<DD>S'Digits denotes the requested decimal precision for the
subtype S. The value of this attribute is of the type <I>universal_integer</I>. The
requested decimal precision of the base subtype of a floating point type T
is defined to be the largest value of <I>d</I> for which ceiling(<I>d</I> * log(10) /
log(T'Machine_Radix)) + 1 <= T'Model_Mantissa.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>S'Digits<DD>S'Digits denotes the requested decimal precision for the
subtype S. The value of this attribute is of the type <I>universal_integer</I>.
The requested decimal precision of the base subtype of a floating point
type T is defined to be the largest value of <I>d</I> for which</DL></UL></P>
<P><UL><UL>
ceiling(<I>d</I> * log(10) / log(T'Machine_Radix)) + <I>g</I> <= T'Model_Mantissa<BR>
where <I>g</I> is 0 if Machine_Radix is a positive power of 10 and 1 otherwise.</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">3.5.10 Operations of Fixed Point Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0005">8652/0005</A>]
</FONT></B></P>
<P><UL><DL>
<DT>S'Small<DD>S'Small denotes the <I>small</I> of the type of S. The value of
this attribute is of the type <I>universal_real</I>. Small may be specified for
nonderived fixed point types via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>
(see 13.3); the expression of such a clause shall be static.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>S'Small<DD>S'Small denotes the <I>small</I> of the type of S. The value of
this attribute is of the type <I>universal_real</I>. Small may be specified for
nonderived ordinary fixed point types via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>
(see 13.3); the expression of such a clause shall be static.</DL></UL></P>
<H3><FONT FACE="Arial, Helvetica">3.6 Array Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 22: [<A HREF="defect1.html#8652/0002">8652/0002</A>]
</FONT></B></P>
<UL><P>The elaboration of a <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> creates the discrete
subtype, and consists of the elaboration of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or the
evaluation of the <FONT FACE="Arial, Helvetica">range</FONT>. The elaboration of a <FONT FACE="Arial, Helvetica">component_definition</FONT>
in an <FONT FACE="Arial, Helvetica">array_type_definition</FONT> consists of the elaboration of the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT>. The elaboration of any
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT>s and the elaboration of
the <FONT FACE="Arial, Helvetica">component_definition</FONT> are performed in an arbitrary order.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The elaboration of a <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> that does not contain
any per-object expressions creates the discrete
subtype, and consists of the elaboration of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or the
evaluation of the <FONT FACE="Arial, Helvetica">range</FONT>. The elaboration of a
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> that contains one or more per-object
expressions is defined in 3.8. The elaboration of a <FONT FACE="Arial, Helvetica">component_definition</FONT>
in an <FONT FACE="Arial, Helvetica">array_type_definition</FONT> consists of the elaboration of the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT>. The elaboration of any
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT>s and the elaboration of
the <FONT FACE="Arial, Helvetica">component_definition</FONT> are performed in an arbitrary order.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.6.2 Operations of Array Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0006">8652/0006</A>]
</FONT></B></P>
<UL><P>The following attributes are defined for a prefix A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The following attributes are defined for a <FONT FACE="Arial, Helvetica">prefix</FONT> A that is of an array
type (after any implicit dereference), or denotes a constrained array
subtype:
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.7 Discriminants</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0007">8652/0007</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">known_discriminant_part</FONT> is only permitted in a declaration for a
composite type that is not an array type (this includes generic formal
types); a type declared with a <FONT FACE="Arial, Helvetica">known_discriminant_part</FONT> is called a
<I>discriminated</I> type, as is a type that inherits (known) discriminants.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">discriminant_part</FONT> is only permitted in a declaration for a
composite type that is not an array type (this includes generic formal
types). A type declared with a <FONT FACE="Arial, Helvetica">known_discriminant_part</FONT> is called a
<I>discriminated</I> type, as is a type that inherits (known) discriminants.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.7.1 Discriminant Constraints</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0008">8652/0008</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">discriminant_constraint</FONT> is only allowed in a <FONT FACE="Arial, Helvetica">subtype_indication</FONT>
whose <FONT FACE="Arial, Helvetica">subtype_mark</FONT> denotes either an unconstrained discriminated subtype,
or an unconstrained access subtype whose designated subtype is an unconstrained
discriminated subtype.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">discriminant_constraint</FONT> is only allowed in a <FONT FACE="Arial, Helvetica">subtype_indication</FONT> whose
<FONT FACE="Arial, Helvetica">subtype_mark</FONT> denotes either an unconstrained discriminated subtype, or an
unconstrained access subtype whose designated subtype is an unconstrained
discriminated subtype. However, in the case of a general access subtype, a
<FONT FACE="Arial, Helvetica">discriminant_constraint</FONT> is illegal if there is a place within the
immediate scope of the designated subtype where the designated subtype's view
is constrained.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.8 Record Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">component_item ::= component_declaration | representation_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">component_item ::= component_declaration | aspect_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0002">8652/0002</A>]
</FONT></B></P>
<UL><P>Within the definition of a composite type, if a <FONT FACE="Arial, Helvetica">component_definition</FONT> or
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> (see 9.5.2) includes a <FONT FACE="Arial, Helvetica">name</FONT> that denotes
a discriminant of the type, or that is an <FONT FACE="Arial, Helvetica">attribute_reference</FONT> whose
<FONT FACE="Arial, Helvetica">prefix</FONT> denotes the current instance of the type, the expression containing
the <FONT FACE="Arial, Helvetica">name</FONT> is called a <I>per-object expression</I>, and the constraint being
defined is called a <I>per-object constraint</I>. For the elaboration of a
<FONT FACE="Arial, Helvetica">component_definition</FONT> of a <FONT FACE="Arial, Helvetica">component_declaration</FONT>, if the <FONT FACE="Arial, Helvetica">constraint</FONT>
of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> is not a per-object constraint, then the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT> is elaborated. On the other hand, if the <FONT FACE="Arial, Helvetica">constraint</FONT>
is a per-object constraint, then the elaboration consists of the evaluation
of any included expression that is not part of a per-object expression.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Within the definition of a composite type, if a <FONT FACE="Arial, Helvetica">component_definition</FONT> or
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> (see 9.5.2) includes a <FONT FACE="Arial, Helvetica">name</FONT> that denotes
a discriminant of the type, or that is an <FONT FACE="Arial, Helvetica">attribute_reference</FONT> whose
<FONT FACE="Arial, Helvetica">prefix</FONT> denotes the current instance of the type, the expression containing the
<FONT FACE="Arial, Helvetica">name</FONT> is called a <I>per-object expression</I>, and the <FONT FACE="Arial, Helvetica">constraint</FONT> or
<FONT FACE="Arial, Helvetica">range</FONT> being defined is called a <I>per-object constraint</I>. For the
elaboration of a <FONT FACE="Arial, Helvetica">component_definition</FONT> of a <FONT FACE="Arial, Helvetica">component_declaration</FONT> or
the <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> of an <FONT FACE="Arial, Helvetica">entry_declaration</FONT> for an entry
family (see 9.5.2), if the <FONT FACE="Arial, Helvetica">constraint</FONT> or <FONT FACE="Arial, Helvetica">range</FONT> of the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT> or <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> is not a per-object
constraint, then the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT>
is elaborated. On the other hand, if the <FONT FACE="Arial, Helvetica">constraint</FONT> or <FONT FACE="Arial, Helvetica">range</FONT> is a
per-object constraint, then the elaboration consists of the evaluation of any
included expression that is not part of a per-object expression. Each such
expression is evaluated once unless it is part of a named association in a
discriminant constraint, in which case it is evaluated once for each associated
discriminant.
</P></UL>
<UL><P>When a per-object constraint is elaborated (as part of creating an object),
each per-object expression of the constraint is evaluated.
For other expressions, the values determined during the elaboration of the
<FONT FACE="Arial, Helvetica">component_definition</FONT> or <FONT FACE="Arial, Helvetica">entry_declaration</FONT> are used. Any checks
associated with the enclosing <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> are performed, including the subtype
compatibility check (see 3.2.2), and the associated subtype is created.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.9.2 Dispatching Operations of Tagged Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0010">8652/0010</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">type_conversion</FONT> is statically or dynamically tagged according to whether
the type determined by the <FONT FACE="Arial, Helvetica">subtype_mark</FONT> is specific or class-wide,
respectively. For a controlling operand that is designated by an actual
parameter, the controlling operand is statically or dynamically tagged
according to whether the designated type of the actual parameter is specific
or class-wide, respectively.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">type_conversion</FONT> is statically or dynamically tagged according to whether
the type determined by the <FONT FACE="Arial, Helvetica">subtype_mark</FONT> is specific or class-wide,
respectively. For an object that is designated by an expression whose
expected type is an anonymous access-to-specific tagged type, the object
is dynamically tagged if the expression, ignoring enclosing parentheses, is
of the form X'Access, where X is of a class-wide type, or is of the form
<B>new</B> T'(...), where T denotes a class-wide subtype. Otherwise, the object is
statically or dynamically tagged according to whether the designated type of
the type of the expression is specific or class-wide, respectively.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0010">8652/0010</A>]
</FONT></B></P>
<UL><P>If the expected type for an expression or <FONT FACE="Arial, Helvetica">name</FONT> is some specific tagged
type, then the expression or <FONT FACE="Arial, Helvetica">name</FONT> shall not be dynamically tagged unless it
is a controlling operand in a call on a dispatching operation. Similarly, if
the expected type for an expression is an anonymous access-to-specific tagged
type, then the expression shall not be of an access-to-class-wide type unless
it designates a controlling operand in a call on a dispatching operation.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If the expected type for an expression or <FONT FACE="Arial, Helvetica">name</FONT> is some specific tagged
type, then the expression or <FONT FACE="Arial, Helvetica">name</FONT> shall not be dynamically tagged unless
it is a controlling operand in a call on a dispatching operation.
Similarly, if the expected type for an expression is an anonymous
access-to-specific tagged type, then the object designated by the expression
shall not be dynamically tagged unless it is a controlling operand in
a call on a dispatching operation.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0011">8652/0011</A>]
</FONT></B></P>
<UL><P>In the declaration of a dispatching operation of a tagged type,
everywhere a subtype of the tagged type appears as a subtype of the profile
(see 6.1), it shall statically match the first subtype of the tagged type.
If the dispatching operation overrides an inherited subprogram, it shall be
subtype conformant with the inherited subprogram. A dispatching operation
shall not be of convention Intrinsic. If a dispatching operation overrides
the predefined equals operator, then it shall be of convention Ada (either
explicitly or by default -- see 6.3.1).
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>In the declaration of a dispatching operation of a tagged type,
everywhere a subtype of the tagged type appears as a subtype of the profile
(see 6.1), it shall statically match the first subtype of the tagged type.
If the dispatching operation overrides an inherited subprogram, it shall be
subtype conformant with the inherited subprogram. The convention of an
inherited or overriding dispatching operation is the convention of the
corresponding primitive operation of the parent type. An explicitly declared
dispatching operation shall not be of convention Intrinsic.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.10 Access Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0012">8652/0012</A>]
</FONT></B></P>
<UL><P>There are two kinds of access types, <I>access-to-object</I> types, whose values
designate objects, and <I>access-to-subprogram</I> types, whose values designate
subprograms. Associated with an access-to-object type is a <I>storage pool</I>;
several access types may share the same storage pool. A storage pool is an area
of storage used to hold dynamically allocated objects (called <I>pool elements</I>)
created by allocators; storage pools are described further in 13.11,
``Storage Management''.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>There are two kinds of access types, <I>access-to-object</I> types, whose values
designate objects, and <I>access-to-subprogram</I> types, whose values designate
subprograms. Associated with an access-to-object type is a <I>storage pool</I>;
several access types may share the same storage pool. All descendants of an
access type share the same storage pool. A storage pool is an area of
storage used to hold dynamically allocated objects (called <I>pool elements</I>)
created by allocators; storage pools are described further in 13.11,
``Storage Management''.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 14: [<A HREF="defect1.html#8652/0013">8652/0013</A>]
</FONT></B></P>
<UL><P>All subtypes of an access-to-subprogram type are constrained. The first
subtype of a type defined by an <FONT FACE="Arial, Helvetica">access_type_definition</FONT> or an
<FONT FACE="Arial, Helvetica">access_to_object_definition</FONT> is unconstrained if the designated subtype
is an unconstrained array or discriminated type; otherwise it is constrained.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>All subtypes of an access-to-subprogram type are constrained. The first
subtype of a type defined by an <FONT FACE="Arial, Helvetica">access_definition</FONT> or an
<FONT FACE="Arial, Helvetica">access_to_object_definition</FONT> is unconstrained if the designated subtype
is an unconstrained array or discriminated subtype; otherwise it is constrained.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">3.10.2 Operations of Access Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 24: [<A HREF="defect1.html#8652/0010">8652/0010</A>]
</FONT></B></P>
<P><UL><DL>
<DT>X'Access<DD>
X'Access yields an access value that designates the object
denoted by X. The type of X'Access is an access-to-object
type, as determined by the expected type. The expected type
shall be a general access type. X shall denote an aliased
view of an object, including possibly the current instance
(see 8.6) of a limited type within its definition, or a
formal parameter or generic formal object of a tagged type.
The view denoted by the <FONT FACE="Arial, Helvetica">prefix</FONT> X shall satisfy the following
additional requirements, presuming the expected type for
X'Access is the general access type <I>A</I>:</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>X'Access<DD>
X'Access yields an access value that designates the object
denoted by X. The type of X'Access is an access-to-object
type, as determined by the expected type. The expected type
shall be a general access type. X shall denote an aliased
view of an object, including possibly the current instance
(see 8.6) of a limited type within its definition, or a
formal parameter or generic formal object of a tagged type.
The view denoted by the <FONT FACE="Arial, Helvetica">prefix</FONT> X shall satisfy the following
additional requirements, presuming the expected type for
X'Access is the general access type <I>A</I>, with designated type <I>D</I>:</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 27: [<A HREF="defect1.html#8652/0010">8652/0010</A>]
</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
If the designated type of <I>A</I> is tagged, then the type of the view
shall be covered by the designated type; if <I>A</I>'s designated type is not
tagged, then the type of the view shall be the same, and either <I>A</I>'s
designated subtype shall statically match the nominal subtype of the view,
or the designated subtype shall be discriminated and unconstrained;</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
If <I>A</I> is a named access type and <I>D</I> is a tagged type, then the
type of the view shall be covered by <I>D</I>; if <I>A</I> is anonymous and <I>D</I> is
tagged, then the type of the view shall be either <I>D</I>'Class or a type
covered by <I>D</I>; if <I>D</I> is untagged, then the type of the view shall be
<I>D</I>, and <I>A</I>'s designated subtype shall either statically match the
nominal subtype of the view or be discriminated and unconstrained;</LI></UL></UL></UL>
<H3><FONT FACE="Arial, Helvetica">3.11 Declarative Parts</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">basic_declarative_item ::=
basic_declaration | representation_clause | use_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">basic_declarative_item ::=
basic_declaration | aspect_clause | use_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0014">8652/0014</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For a call to a (non-protected) subprogram that has an explicit
body, a check is made that the <FONT FACE="Arial, Helvetica">subprogram_body</FONT> is already
elaborated. This check and the evaluations of any actual
parameters of the call are done in an arbitrary order.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For a call to a (non-protected) subprogram that has an explicit
body, a check is made that the body is already elaborated. This check and
the evaluations of any actual parameters of the call are done in an
arbitrary order.</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">3.11.1 Completions of Declarations</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0014">8652/0014</A>]
</FONT></B></P>
<UL><P>Declarations sometimes come in two parts. A declaration that requires a
second part is said to <I>require completion</I>. The second part is called the
<I>completion</I> of the declaration (and of the entity declared), and is
either another declaration, a body, or a <FONT FACE="Arial, Helvetica">pragma</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Declarations sometimes come in two parts. A declaration that requires a
second part is said to <I>require completion</I>. The second part is called the
<I>completion</I> of the declaration (and of the entity declared), and is
either another declaration, a body, or a <FONT FACE="Arial, Helvetica">pragma</FONT>. A <I>body</I> is a <FONT FACE="Arial, Helvetica">body</FONT>,
an <FONT FACE="Arial, Helvetica">entry_body</FONT>, or a renaming-as-body (see 8.5.4).
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 4: Names and Expressions</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">4.1.4 Attributes</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0015">8652/0015</A>]
</FONT></B></P>
<UL><P>An implementation may provide implementation-defined attributes; the
<FONT FACE="Arial, Helvetica">identifier</FONT> for an implementation-defined attribute shall differ from
those of the language-defined attributes.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An implementation may provide implementation-defined attributes; the
<FONT FACE="Arial, Helvetica">identifier</FONT> for an implementation-defined attribute shall differ from
those of the language-defined attributes unless supplied for
compatibility with a previous edition of this International Standard.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">4.5.2 Relational Operators and Membership Tests</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 24: [<A HREF="defect1.html#8652/0016">8652/0016</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Otherwise, the result is defined in terms of the primitive equals
operator for any matching tagged components, and the predefined
equals for any matching untagged components.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>For any composite type, the order in which "=" is called for components is
unspecified. Furthermore, if the result can be determined
before calling "=" on some components, it is unspecified whether
"=" is called on those components.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 32: [<A HREF="defect1.html#8652/0016">8652/0016</A>]
</FONT></B></P>
<UL><P>A membership test using <B>not in</B> gives the complementary result to the
corresponding membership test using <B>in</B>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P><I><FONT SIZE=-2>Implementation Requirements</FONT></I><BR>
For all nonlimited types declared in language-defined packages, the "="
and "/=" operators of the type shall behave as if they were the predefined
equality operators for the purposes of the equality of composite types and
generic formal types.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">4.6 Type Conversions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0017">8652/0017</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">type_conversion</FONT> whose operand is the <FONT FACE="Arial, Helvetica">name</FONT> of an object is called a
<I>view conversion</I> if its target type is tagged, or if it appears as an actual
parameter of mode <B>out</B> or <B>in out</B>; other <FONT FACE="Arial, Helvetica">type_conversion</FONT>s are
called <I>value conversions</I>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">type_conversion</FONT> whose operand is the <FONT FACE="Arial, Helvetica">name</FONT> of an object is called a
<I>view conversion</I> if both its target type and operand type are tagged, or
if it appears as an actual parameter of mode <B>out</B> or <B>in out</B>; other
<FONT FACE="Arial, Helvetica">type_conversion</FONT>s are called <I>value conversions</I>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0008">8652/0008</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Corresponding index types shall be convertible; and</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Corresponding index types shall be convertible;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0008">8652/0008</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
The component subtypes shall statically match.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
The component subtypes shall statically match; and</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
In a view conversion, the target type and the operand type shall both
or neither have aliased components.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 54: [<A HREF="defect1.html#8652/0017">8652/0017</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If the target type is composite, the bounds or discriminants (if
any) of the view are as defined above for a value conversion;
each nondiscriminant component of the view denotes the matching
component of the operand object; the subtype of the view is
constrained if either the target subtype or the operand object is
constrained, or if the operand type is a descendant of the target
type, and has discriminants that were not inherited from the
target type;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If the target type is composite, the bounds or discriminants (if
any) of the view are as defined above for a value conversion;
each nondiscriminant component of the view denotes the matching
component of the operand object; the subtype of the view is
constrained if either the target subtype or the operand object is
constrained, or if the target subtype is indefinite, or if the operand type is
a descendant of the target type and has discriminants that were not
inherited from the target type;</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">4.8 Allocators</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 3: [<A HREF="defect1.html#8652/0010">8652/0010</A>]
</FONT></B></P>
<UL><P>The expected type for an <FONT FACE="Arial, Helvetica">allocator</FONT> shall be a single access-to-object
type whose designated type covers the type determined by the <FONT FACE="Arial, Helvetica">subtype_mark</FONT>
of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or <FONT FACE="Arial, Helvetica">qualified_expression</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The expected type for an <FONT FACE="Arial, Helvetica">allocator</FONT> shall be a single access-to-object type with
designated type <I>D</I> such that either <I>D</I> covers the type determined by the
<FONT FACE="Arial, Helvetica">subtype_mark</FONT> of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT> or <FONT FACE="Arial, Helvetica">qualified_expression</FONT>,
or the expected type is anonymous and the determined type is <I>D</I>'Class.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0002">8652/0002</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If the designated type is composite, an object of the designated
type is created with tag, if any, determined by the <FONT FACE="Arial, Helvetica">subtype_mark</FONT>
of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT>; any per-object constraints on
subcomponents are elaborated and any implicit initial values for
the subcomponents of the object are obtained as determined by the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT> and assigned to the corresponding subcomponents.
A check is made that the value of the object belongs to the designated
subtype. Constraint_Error is raised if this check fails. This check and the
initialization of the object are performed in an arbitrary order.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If the designated type is composite, an object of the designated
type is created with tag, if any, determined by the <FONT FACE="Arial, Helvetica">subtype_mark</FONT>
of the <FONT FACE="Arial, Helvetica">subtype_indication</FONT>; any per-object constraints on
subcomponents are elaborated (see 3.8) and any implicit initial values for
the subcomponents of the object are obtained as determined by the
<FONT FACE="Arial, Helvetica">subtype_indication</FONT> and assigned to the corresponding subcomponents.
A check is made that the value of the object belongs to the designated
subtype. Constraint_Error is raised if this check fails. This check and the
initialization of the object are performed in an arbitrary order.</LI></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 5: Statements</FONT></H2>
<P></P>
<P>No changes in this section.</P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 6: Subprograms</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">6.3.1 Conformance Rules</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0011">8652/0011</A>]
</FONT></B></P>
<UL><P>As explained in B.1, ``Interfacing Pragmas'', a
<I>convention</I> can be specified for an entity. For a callable entity
or access-to-subprogram type, the convention is called the
<I>calling convention</I>. The following conventions are defined by the language:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>As explained in B.1, ``Interfacing Pragmas'', a
<I>convention</I> can be specified for an entity. Unless this International
Standard states otherwise, the default convention of an entity is Ada. For
a callable entity or access-to-subprogram type, the convention is called the
<I>calling convention</I>. The following calling conventions are defined by the
language:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 13: [<A HREF="defect1.html#8652/0011">8652/0011</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
The default calling convention is <I>entry</I> for an entry.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If not specified above as Intrinsic, the calling convention for
any inherited or overriding dispatching operation of a tagged type is that
of the corresponding subprogram of the parent type. The
default calling convention for a new dispatching operation
of a tagged type is the convention of the type.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 21: [<A HREF="defect1.html#8652/0018">8652/0018</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
each <FONT FACE="Arial, Helvetica">direct_name</FONT>, <FONT FACE="Arial, Helvetica">character_literal</FONT>, and <FONT FACE="Arial, Helvetica">selector_name</FONT>
that is not part of the <FONT FACE="Arial, Helvetica">prefix</FONT> of an expanded name in one denotes the
same declaration as the corresponding <FONT FACE="Arial, Helvetica">direct_name</FONT>, <FONT FACE="Arial, Helvetica">character_literal</FONT>,
or <FONT FACE="Arial, Helvetica">selector_name</FONT> in the other; and</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
each <FONT FACE="Arial, Helvetica">attribute_designator</FONT> in one must be the same as the
corresponding <FONT FACE="Arial, Helvetica">attribute_designator</FONT> in the other; and</LI></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 7: Packages</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">7.3.1 Private Operations</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 3: [<A HREF="defect1.html#8652/0019">8652/0019</A>]
</FONT></B></P>
<UL><P>For a composite type, the characteristics (see 7.3) of the type are
determined in part by the characteristics of its component types. At the
place where the composite type is declared, the only characteristics of
component types used are those characteristics visible at that place. If
later within the immediate scope of the composite type additional
characteristics become visible for a component type, then any corresponding
characteristics become visible for the composite type. Any additional
predefined operators are implicitly declared at that place.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For a composite type, the characteristics (see 7.3) of the type are
determined in part by the characteristics of its component types. At the place
where the composite type is declared, the only characteristics of component
types used are those characteristics visible at that place. If later immediately
within the declarative region in which the composite type is declared additional
characteristics become visible for a component type, then any corresponding
characteristics become visible for the composite type. Any additional predefined
operators are implicitly declared at that place.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0019">8652/0019</A>]
</FONT></B></P>
<UL><P>The corresponding rule applies to a type defined by a
<FONT FACE="Arial, Helvetica">derived_type_definition</FONT>, if there is a place within its immediate scope
where additional characteristics of its parent type become visible.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The corresponding rule applies to a type defined by a
<FONT FACE="Arial, Helvetica">derived_type_definition</FONT>, if there is a place immediately within the
declarative region in which the type is declared where additional
characteristics of its parent type become visible.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0019">8652/0019</A>]
</FONT></B></P>
<UL><P>For example, an array type whose component type is limited private
becomes nonlimited if the full view of the component type is nonlimited and
visible at some later place within the immediate scope of the array type. In
such a case, the predefined "=" operator is implicitly declared at that
place, and assignment is allowed after that place.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For example, an array type whose component type is limited private
becomes nonlimited if the full view of the component type is nonlimited and
visible at some later place immediately within the declarative region in which
the array type is declared. In such a case, the predefined "=" operator is
implicitly declared at that place, and assignment is allowed after that place.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 6: [<A HREF="defect1.html#8652/0019">8652/0019</A>]
</FONT></B></P>
<UL><P>Inherited primitive subprograms follow a different rule. For a
<FONT FACE="Arial, Helvetica">derived_type_definition</FONT>, each inherited primitive subprogram is implicitly
declared at the earliest place, if any, within the immediate scope of the
<FONT FACE="Arial, Helvetica">type_declaration</FONT>, but after the <FONT FACE="Arial, Helvetica">type_declaration</FONT>, where the
corresponding declaration from the parent is visible. If there is no such place,
then the inherited subprogram is not declared at all. An inherited subprogram
that is not declared at all cannot be named in a call and cannot be overridden,
but for a tagged type, it is possible to dispatch to it.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Inherited primitive subprograms follow a different rule. For a
<FONT FACE="Arial, Helvetica">derived_type_definition</FONT>, each inherited primitive subprogram is implicitly
declared at the earliest place, if any, immediately within the declarative
region in which the <FONT FACE="Arial, Helvetica">type_declaration</FONT> occurs, but after the
<FONT FACE="Arial, Helvetica">type_declaration</FONT>, where the corresponding declaration from the parent is
visible. If there is no such place, then the inherited subprogram is not
declared at all. An inherited subprogram that is not declared at all cannot
be named in a call and cannot be overridden, but for a tagged type it is
possible to dispatch to it.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">7.6 User-Defined Assignment and Finalization</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0020">8652/0020</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>package</B> Ada.Finalization <B>is</B>
<B>pragma</B> Preelaborate(Finalization);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>package</B> Ada.Finalization <B>is</B>
<B>pragma</B> Preelaborate(Finalization);
<B>pragma</B> Remote_Types(Finalization);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0021">8652/0021</A>]
</FONT></B></P>
<UL><P>For an <FONT FACE="Arial, Helvetica">extension_aggregate</FONT> whose <FONT FACE="Arial, Helvetica">ancestor_part</FONT> is a <FONT FACE="Arial, Helvetica">subtype_mark</FONT>,
Initialize is called on all controlled subcomponents of the ancestor part; if
the type of the ancestor part is itself controlled, the Initialize procedure
of the ancestor type is called, unless that Initialize procedure is abstract.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For an <FONT FACE="Arial, Helvetica">extension_aggregate</FONT> whose <FONT FACE="Arial, Helvetica">ancestor_part</FONT> is a <FONT FACE="Arial, Helvetica">subtype_mark</FONT>,
for each controlled subcomponent of the ancestor part, either Initialize
is called, or its initial value is assigned, as appropriate; if the
type of the ancestor part is itself controlled, the Initialize procedure of
the ancestor type is called, unless that Initialize procedure is abstract.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 17: [<A HREF="defect1.html#8652/0022">8652/0022</A>]
</FONT></B></P>
<UL><P>For an <FONT FACE="Arial, Helvetica">assignment_statement</FONT>, after the <FONT FACE="Arial, Helvetica">name</FONT> and <FONT FACE="Arial, Helvetica">expression</FONT>
have been evaluated, and any conversion (including constraint checking)
has been done, an anonymous object is created, and the value is assigned
into it; that is, the assignment operation is applied. (Assignment includes
value adjustment.) The target of the <FONT FACE="Arial, Helvetica">assignment_statement</FONT> is then
finalized. The value of the anonymous object is then assigned into the
target of the <FONT FACE="Arial, Helvetica">assignment_statement</FONT>. Finally, the anonymous object is
finalized. As explained below, the implementation may eliminate the
intermediate anonymous object, so this description subsumes the one given
in 5.2, ``Assignment Statements''.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P><I><FONT SIZE=-2>Implementation Requirements</FONT></I><BR>
For an <FONT FACE="Arial, Helvetica">aggregate</FONT> of a controlled type whose value is assigned, other than
by an <FONT FACE="Arial, Helvetica">assignment_statement</FONT> or a <FONT FACE="Arial, Helvetica">return_statement</FONT>, the implementation
shall not create a separate anonymous object for the <FONT FACE="Arial, Helvetica">aggregate</FONT>. The
aggregate value shall be constructed directly in the target of the assignment
operation and Adjust is not called on the target object.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">7.6.1 Completion and Finalization</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 13: [<A HREF="defect1.html#8652/0021">8652/0021</A>; <A HREF="defect1.html#8652/0023">8652/0023</A>]
</FONT></B></P>
<UL><P>The anonymous objects created by function calls and by <FONT FACE="Arial, Helvetica">aggregate</FONT>s are
finalized no later than the end of the innermost enclosing <FONT FACE="Arial, Helvetica">declarative_item</FONT>
or <FONT FACE="Arial, Helvetica">statement</FONT>; if that is a <FONT FACE="Arial, Helvetica">compound_statement</FONT>, they are finalized
before starting the execution of any <FONT FACE="Arial, Helvetica">statement</FONT> within the
<FONT FACE="Arial, Helvetica">compound_statement</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If the <FONT FACE="Arial, Helvetica">object_name</FONT> in an <FONT FACE="Arial, Helvetica">object_renaming_declaration</FONT>, or the actual
parameter for a generic formal <B>in out</B> parameter in a
<FONT FACE="Arial, Helvetica">generic_instantiation</FONT>, denotes any part of an anonymous object created by
a function call, the anonymous object is not finalized until after
it is no longer accessible via any name. Otherwise, an anonymous
object created by a function call or by an <FONT FACE="Arial, Helvetica">aggregate</FONT> is finalized no later
than the end of the innermost enclosing <FONT FACE="Arial, Helvetica">declarative_item</FONT>
or <FONT FACE="Arial, Helvetica">statement</FONT>; if that is a <FONT FACE="Arial, Helvetica">compound_statement</FONT>, the object is
finalized before starting the execution of any <FONT FACE="Arial, Helvetica">statement</FONT> within the
<FONT FACE="Arial, Helvetica">compound_statement</FONT>.
</P></UL>
<UL><P>If a transfer of control or raising of an exception
occurs prior to performing a finalization of an anonymous object, the
anonymous object is finalized as part of the finalizations due to be
performed for the object's innermost enclosing master.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 14: [<A HREF="defect1.html#8652/0023">8652/0023</A>]
</FONT></B></P>
<UL><P>It is a bounded error for a call on Finalize or Adjust to propagate an
exception. The possible consequences depend on what action invoked the
Finalize or Adjust operation:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>It is a bounded error for a call on Finalize or Adjust that occurs
as part of object finalization or assignment to propagate an exception.
The possible consequences depend on what action invoked the
Finalize or Adjust operation:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 16: [<A HREF="defect1.html#8652/0024">8652/0024</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For an Adjust invoked as part of an assignment operation, any
other adjustments due to be performed are performed, and then Program_Error
is raised.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For an Adjust invoked as part of the initialization of a controlled
object, other adjustments due to be performed might or might not be performed,
and then Program_Error is raised. During its propagation, finalization might or
might not be applied to objects whose Adjust failed. For an Adjust invoked
as part of an assignment statement, any other adjustments due to be performed
are performed, and then Program_Error is raised.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 17: [<A HREF="defect1.html#8652/0023">8652/0023</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For a Finalize invoked as part of a call on an instance of
Unchecked_Deallocation, any other finalizations due to be
performed are performed, and then Program_Error is raised.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For a Finalize invoked as part of the finalization of the anonymous
object created by a function call or <FONT FACE="Arial, Helvetica">aggregate</FONT>, any other finalizations due to
be performed are performed, and then Program_Error is raised.</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
For a Finalize invoked due to reaching the end of the execution of
a master, any other finalizations associated with the master are performed,
and Program_Error is raised immediately after leaving the master.</LI></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 8: Visibility Rules</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">8.3 Visibility</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0025">8652/0025</A>]
</FONT></B></P>
<UL><P>Two homographs are not generally allowed immediately within the same
declarative region unless one <I>overrides</I> the other (see Legality Rules below).
A declaration overrides another homograph that occurs immediately within the
same declarative region in the following cases:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Two homographs are not generally allowed immediately within the same
declarative region unless one <I>overrides</I> the other (see Legality Rules
below). The only declarations that are <I>overridable</I> are the implicit
declarations for predefined operators and inherited primitive subprograms.
A declaration overrides another homograph that occurs immediately within
the same declarative region in the following cases:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0025">8652/0025</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
An explicit declaration overrides an implicit declaration of a
primitive subprogram, regardless of which declaration occurs first;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
A declaration that is not overridable overrides one that is
overridable, regardless of which declaration occurs first;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 26: [<A HREF="defect1.html#8652/0025">8652/0025</A>; <A HREF="defect1.html#8652/0026">8652/0026</A>]
</FONT></B></P>
<UL><P>An explicit declaration is illegal if there is a homograph occurring
immediately within the same declarative region that is visible at the place
of the declaration, and is not hidden from all visibility by the explicit
declaration. Similarly, the <FONT FACE="Arial, Helvetica">context_clause</FONT> for a <FONT FACE="Arial, Helvetica">subunit</FONT> is illegal if it
mentions (in a <FONT FACE="Arial, Helvetica">with_clause</FONT>) some library unit, and there is a homograph of
the library unit that is visible at the place of the corresponding stub, and
the homograph and the mentioned library unit are both declared immediately
within the same declarative region. These rules also apply to dispatching
operations declared in the visible part of an instance of a generic unit.
However, they do not apply to other overloadable declarations in an instance;
such declarations may have type conformant profiles in the instance, so long
as the corresponding declarations in the generic were not type conformant.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A non-overridable declaration is illegal if there is a homograph occurring
immediately within the same declarative region that is visible at the place
of the declaration, and is not hidden from all visibility by the non-overridable
declaration. In addition, a type extension is illegal if somewhere within
its immediate scope it has two visible components with the same name. Similarly,
the <FONT FACE="Arial, Helvetica">context_clause</FONT> for a <FONT FACE="Arial, Helvetica">subunit</FONT> is illegal if it
mentions (in a <FONT FACE="Arial, Helvetica">with_clause</FONT>) some library unit, and there is a homograph of
the library unit that is visible at the place of the corresponding stub, and
the homograph and the mentioned library unit are both declared immediately
within the same declarative region. These rules also apply to dispatching
operations declared in the visible part of an instance of a generic unit.
However, they do not apply to other overloadable declarations in an instance;
such declarations may have type conformant profiles in the instance, so long
as the corresponding declarations in the generic were not type conformant.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">8.5.1 Object Renaming Declarations</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0017">8652/0017</A>]
</FONT></B></P>
<UL><P>The renamed entity shall not be a subcomponent that depends on
discriminants of a variable whose nominal subtype is unconstrained, unless
this subtype is indefinite, or the variable is aliased. A <FONT FACE="Arial, Helvetica">slice</FONT> of an array
shall not be renamed if this restriction disallows renaming of the array.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The renamed entity shall not be a subcomponent that depends on
discriminants of a variable whose nominal subtype is unconstrained, unless
this subtype is indefinite, or the variable is aliased. A <FONT FACE="Arial, Helvetica">slice</FONT> of an array
shall not be renamed if this restriction disallows renaming of the array.
In addition to the places where Legality Rules normally apply, these rules
apply also in the private part of an instance of a generic unit. These rules
also apply for a renaming that appears in the body of a generic unit, with
the additional requirement that even if the nominal subtype of the variable is
indefinite, its type shall not be a descendant of an untagged generic
formal derived type.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">8.5.4 Subprogram Renaming Declarations</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0027">8652/0027</A>; <A HREF="defect1.html#8652/0028">8652/0028</A>]
</FONT></B></P>
<UL><P>The profile of a renaming-as-body shall be subtype-conformant with that
of the renamed callable entity, and shall conform fully to that of the
declaration it completes. If the renaming-as-body completes that declaration
before the subprogram it declares is frozen, the subprogram it declares takes
its convention from the renamed subprogram; otherwise the convention of the
renamed subprogram shall not be Intrinsic.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The profile of a renaming-as-body shall conform fully to that of the
declaration it completes. If the renaming-as-body completes that declaration
before the subprogram it declares is frozen, the profile shall be
mode-conformant with that of the renamed callable entity and the subprogram
it declares takes its convention from the renamed subprogram; otherwise, the
profile shall be subtype-conformant with that of the renamed callable entity
and the convention of the renamed subprogram shall not be Intrinsic.
A renaming-as-body is illegal if the declaration occurs before the subprogram
whose declaration it completes is frozen, and the renaming renames the
subprogram itself, through one or more subprogram renaming declarations,
none of whose subprograms has been frozen.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0014">8652/0014</A>; <A HREF="defect1.html#8652/0027">8652/0027</A>]
</FONT></B></P>
<UL><P>For a call on a renaming of a dispatching subprogram that is overridden,
if the overriding occurred before the renaming, then the body executed is
that of the overriding declaration, even if the overriding declaration is not
visible at the place of the renaming; otherwise, the inherited or predefined
subprogram is called.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For a call to a subprogram whose body is given as a renaming-as-body, the
execution of the renaming-as-body is equivalent to the execution of a
<FONT FACE="Arial, Helvetica">subprogram_body</FONT> that simply calls the renamed subprogram with its formal
parameters as the actual parameters and, if it is a function, returns the value
of the call.
</P></UL>
<UL><P>For a call on a renaming of a dispatching subprogram that is overridden,
if the overriding occurred before the renaming, then the body executed is
that of the overriding declaration, even if the overriding declaration is not
visible at the place of the renaming; otherwise, the inherited or predefined
subprogram is called.
</P></UL>
<UL><P><I><FONT SIZE=-2>Bounded (Run-Time) Errors</FONT></I><BR>
If a subprogram directly or indirectly renames itself, then it is a bounded
error to call that subprogram. Possible consequences are that Program_Error
or Storage_Error is raised, or that the call results in infinite recursion.
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 9: Tasks and Synchronization</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">9.1 Task Units and Task Objects</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">task_item ::= entry_declaration | representation_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">task_item ::= entry_declaration | aspect_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 9: [<A HREF="defect1.html#8652/0029">8652/0029</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">task_definition</FONT> defines a task type and its first subtype. The first
list of <FONT FACE="Arial, Helvetica">task_item</FONT>s of a <FONT FACE="Arial, Helvetica">task_definition</FONT>, together with the
<FONT FACE="Arial, Helvetica">known_discriminant_part</FONT>, if any, is called the visible part of the
task unit. The optional list of <FONT FACE="Arial, Helvetica">task_item</FONT>s after the reserved word
<B>private</B> is called the private part of the task unit.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>For a task declaration without a <FONT FACE="Arial, Helvetica">task_definition</FONT>, a
<FONT FACE="Arial, Helvetica">task_definition</FONT> without <FONT FACE="Arial, Helvetica">task_item</FONT>s is assumed.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>As part of the initialization of a task object, any <FONT FACE="Arial, Helvetica">representation_clause</FONT>s
and any per-object constraints associated with <FONT FACE="Arial, Helvetica">entry_declaration</FONT>s of
the corresponding <FONT FACE="Arial, Helvetica">task_definition</FONT> are elaborated in the given order.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>As part of the initialization of a task object, any <FONT FACE="Arial, Helvetica">aspect_clause</FONT>s
and any per-object constraints associated with <FONT FACE="Arial, Helvetica">entry_declaration</FONT>s of
the corresponding <FONT FACE="Arial, Helvetica">task_definition</FONT> are elaborated in the given order.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">9.4 Protected Units and Protected Objects</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">protected_operation_declaration ::= subprogram_declaration
| entry_declaration
| representation_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">protected_operation_declaration ::= subprogram_declaration
| entry_declaration
| aspect_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">protected_operation_item ::= subprogram_declaration
| subprogram_body
| entry_body
| representation_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">protected_operation_item ::= subprogram_declaration
| subprogram_body
| entry_body
| aspect_clause</FONT></TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">9.5.2 Entries and Accept Statements</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 22: [<A HREF="defect1.html#8652/0002">8652/0002</A>]
</FONT></B></P>
<UL><P>For the elaboration of an <FONT FACE="Arial, Helvetica">entry_declaration</FONT> for an entry family, if the
<FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> contains no per-object expressions (see 3.8),
then the <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> is elaborated. Otherwise, the
elaboration of the <FONT FACE="Arial, Helvetica">entry_declaration</FONT> consists of the evaluation of any
expression of the <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT> that is not a per-object
expression (or part of one). The elaboration of an <FONT FACE="Arial, Helvetica">entry_declaration</FONT> for a
single entry has no effect.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The elaboration of an <FONT FACE="Arial, Helvetica">entry_declaration</FONT> for an entry family consists of
the elaboration of the <FONT FACE="Arial, Helvetica">discrete_subtype_definition</FONT>, as described in 3.8.
The elaboration of an <FONT FACE="Arial, Helvetica">entry_declaration</FONT> for a single entry has no effect.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">9.6 Delay Statements, Duration, and Time</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 26: [<A HREF="defect1.html#8652/0030">8652/0030</A>]
</FONT></B></P>
<UL><P>The exception Time_Error is raised by the function Time_Of if the actual
parameters do not form a proper date. This exception is also raised by the
operators "+" and "-" if the result is not representable in the type Time or
Duration, as appropriate. This exception is also raised by the function Year
or the procedure Split if the year number of the given date
is outside of the range of the subtype Year_Number.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The exception Time_Error is raised by the function Time_Of if the actual
parameters do not form a proper date. This exception is also raised by the
operators "+" and "-" if the result is not representable in the type Time or
Duration, as appropriate. This exception is also raised by the functions Year, Month, Day, and
Seconds and the procedure Split if the year number of the given date
is outside of the range of the subtype Year_Number.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">9.10 Shared Variables</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 6: [<A HREF="defect1.html#8652/0031">8652/0031</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If A1 is part of the execution of a task, and A2 is the action of
waiting for the termination of the task;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If A1 is the termination of a task T, and A2
is either the evaluation of the expression T'Terminated or a call to
Ada.Task_Identification.Is_Terminated with an actual parameter that identifies
T (see C.7.1);</LI></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 10: Program Structure and Compilation Issues</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">10.1.4 The Compilation Process</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0032">8652/0032</A>]
</FONT></B></P>
<UL><P>If a <FONT FACE="Arial, Helvetica">library_unit_body</FONT> that is a <FONT FACE="Arial, Helvetica">subprogram_body</FONT> is submitted to the
compiler, it is interpreted only as a completion if a
<FONT FACE="Arial, Helvetica">library_unit_declaration</FONT> for a subprogram or a generic subprogram
with the same <FONT FACE="Arial, Helvetica">defining_program_unit_name</FONT> already exists in the
environment (even if the profile of
the body is not type conformant with that of the declaration); otherwise the
<FONT FACE="Arial, Helvetica">subprogram_body</FONT> is interpreted as both the declaration and body of a library
subprogram.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If a <FONT FACE="Arial, Helvetica">library_unit_body</FONT> that is a <FONT FACE="Arial, Helvetica">subprogram_body</FONT> is submitted to the
compiler, it is interpreted only as a completion if a
<FONT FACE="Arial, Helvetica">library_unit_declaration</FONT> with the same <FONT FACE="Arial, Helvetica">defining_program_unit_name</FONT>
already exists in the environment for a subprogram other than an instance of
a generic subprogram or for a generic subprogram (even if the
profile of the body is not type conformant with that of the declaration);
otherwise the <FONT FACE="Arial, Helvetica">subprogram_body</FONT> is interpreted as both the declaration and
body of a library subprogram.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">10.1.5 Pragmas and Program Units</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0033">8652/0033</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Immediately within the declaration of a program unit and before
any nested declaration, in which case the argument, if any, shall
be a <FONT FACE="Arial, Helvetica">direct_name</FONT> that denotes the immediately enclosing program
unit declaration.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Immediately within the visible part of a program
unit and before any nested declaration (but not within a generic
formal part), in which case the argument, if any, shall be a
<FONT FACE="Arial, Helvetica">direct_name</FONT> that denotes the immediately enclosing program unit
declaration.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 7: [<A HREF="defect1.html#8652/0034">8652/0034</A>]
</FONT></B></P>
<UL><P>Certain program unit pragmas are defined to be <I>library unit pragmas</I>. The
name, if any, in a library unit pragma shall denote the declaration of a
library unit.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P><I><FONT SIZE=-2>Static Semantics</FONT></I>
</P></UL>
<UL><P>A library unit pragma that applies to a generic unit does not apply to its
instances, unless a specific rule for the pragma specifies the contrary.
</P></UL>
<UL><P><I><FONT SIZE=-2>Implementation Advice</FONT></I>
</P></UL>
<UL><P>When applied to a generic unit, a program unit pragma that is not a library unit
pragma should apply to each instance of the generic unit for which there is not
an overriding pragma applied directly to the instance.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">10.2.1 Elaboration Control</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0035">8652/0035</A>]
</FONT></B></P>
<UL><P>If a <FONT FACE="Arial, Helvetica">pragma</FONT> Preelaborate (or <FONT FACE="Arial, Helvetica">pragma</FONT> Pure -- see below) applies to a
library unit, then it is <I>preelaborated</I>. If a library unit is preelaborated,
then its declaration, if any, and body, if any, are elaborated prior to all
non-preelaborated <FONT FACE="Arial, Helvetica">library_item</FONT>s of the partition. All compilation units of a
preelaborated library unit shall be preelaborable. In addition to the places
where Legality Rules normally apply (see 12.3), this rule applies also in the
private part of an instance of a generic unit. In addition, all compilation
units of a preelaborated library unit shall depend semantically only on
compilation units of other preelaborated library units.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If a <FONT FACE="Arial, Helvetica">pragma</FONT> Preelaborate (or <FONT FACE="Arial, Helvetica">pragma</FONT> Pure -- see below) applies to a
library unit, then it is <I>preelaborated</I>. If a library unit is preelaborated,
then its declaration, if any, and body, if any, are elaborated prior to all
non-preelaborated <FONT FACE="Arial, Helvetica">library_item</FONT>s of the partition. The declaration and body
of a preelaborated library unit, and all subunits that are elaborated as part of
elaborating the library unit, shall be preelaborable. In addition to the places
where Legality Rules normally apply (see 12.3), this rule applies also in the
private part of an instance of a generic unit. In addition, all compilation
units of a preelaborated library unit shall depend semantically only on
compilation units of other preelaborated library units.
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 11: Exceptions</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">11.5 Suppressing Checks</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0036">8652/0036</A>]
</FONT></B></P>
<P><UL><DL>
<DT>Access_Check<DD>
When evaluating a dereference (explicit or
implicit), check that the value of the <FONT FACE="Arial, Helvetica">name</FONT> is
not <B>null</B>. When passing an actual parameter to a
formal access parameter, check that the value of
the actual parameter is not <B>null</B>.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>Access_Check<DD>
When evaluating a dereference (explicit or
implicit), check that the value of the <FONT FACE="Arial, Helvetica">name</FONT> is
not <B>null</B>. When passing an actual parameter to a
formal access parameter, check that the value of
the actual parameter is not <B>null</B>. When evaluating a
<FONT FACE="Arial, Helvetica">discriminant_association</FONT> for an access discriminant,
check that the value of the discriminant is not <B>null</B>.</DL></UL></P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 12: Generic Units</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">12.5 Formal Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0037">8652/0037</A>]
</FONT></B></P>
<UL><P>The formal type also belongs to each class that contains the determined
class. The primitive subprograms of the type are as for any type in the
determined class. For a formal type other than a formal derived type, these
are the predefined operators of the type; they are implicitly declared
immediately after the declaration of the formal type. In an instance, the
copy of such an implicit declaration declares a view of the predefined
operator of the actual type, even if this operator has been overridden for
the actual type. The rules specific to formal derived types are given in
12.5.1.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The formal type also belongs to each class that contains the determined class.
The primitive subprograms of the type are as for any type in the determined
class. For a formal type other than a formal derived type, these are the
predefined operators of the type. For an elementary formal type, the predefined
operators are implicitly declared immediately after the declaration of the
formal type. For a composite formal type, the predefined operators are
implicitly declared either immediately after the declaration of the formal type,
or later in its immediate scope according to the rules of 7.3.1. In an instance,
the copy of such an implicit declaration declares a view of the predefined
operator of the actual type, even if this operator has been overridden for the
actual type. The rules specific to formal derived types are given in 12.5.1.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">12.5.1 Formal Private and Derived Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 21: [<A HREF="defect1.html#8652/0038">8652/0038</A>]
</FONT></B></P>
<UL><P>For a formal derived type, the predefined operators and inherited
user-defined subprograms are determined by the ancestor type, and are
implicitly declared at the earliest place, if any, within the immediate scope
of the formal type, where the corresponding primitive subprogram of the
ancestor is visible (see 7.3.1). In an instance, the copy of such an
implicit declaration declares a view of the corresponding primitive
subprogram of the ancestor, even if this primitive has been overridden for
the actual type. In the case of a formal private extension, however, the tag
of the formal type is that of the actual type, so if the tag in a call is
statically determined to be that of the formal type, the body executed will
be that corresponding to the actual type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For a formal derived type, the predefined operators and inherited user-defined
subprograms are determined by the ancestor type, and are implicitly declared at
the earliest place, if any, within the immediate scope of the formal type, where
the corresponding primitive subprogram of the ancestor is visible (see 7.3.1).
In an instance, the copy of such an implicit declaration declares a view of the
corresponding primitive subprogram of the ancestor of the formal derived type,
even if this primitive has been overridden for the actual type. When the
ancestor of the formal derived type is itself a formal type, the copy of the
implicit declaration declares a view of the corresponding copied operation of
the ancestor. In the case of a formal private extension, however, the tag of the
formal type is that of the actual type, so if the tag in a call is statically
determined to be that of the formal type, the body executed will be that
corresponding to the actual type.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">12.7 Formal Packages</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 8: [<A HREF="defect1.html#8652/0039">8652/0039</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
For other kinds of formals, the actuals match if they statically
denote the same entity.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>For the purposes of matching, any actual parameter that is the name of a
formal object of mode <B>in</B> is replaced by the formal object's actual expression
(recursively).
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Section 13: Representation Issues</FONT></H2>
<P></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>This section describes features for querying and controlling aspects of
representation and for interfacing to hardware.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>This section describes features for querying and controlling certain aspects
of entities and for interfacing to hardware.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">13.1 Representation Items</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace the title: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>Representation Items
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Operational and Representation Items
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>There are three kinds of <I>representation items</I>: <FONT FACE="Arial, Helvetica">representation_clause</FONT>s,
<FONT FACE="Arial, Helvetica">component_clause</FONT>s, and <I>representation pragmas</I>. Representation items
specify how the types and other entities of the language are to be mapped onto
the underlying machine. They can be provided to give more efficient
representation or to interface with features that are outside the domain of
the language (for example, peripheral hardware). Representation items also
specify other specifiable properties of entities. A representation item
applies to an entity identified by a <FONT FACE="Arial, Helvetica">local_name</FONT>, which denotes an entity
declared local to the current declarative region, or a library unit declared
immediately preceding a representation pragma in a <FONT FACE="Arial, Helvetica">compilation</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Representation and operational items can be used to specify aspects of
entities. Two kinds of aspects of entities can be specified: aspects of
representation and operational aspects. Representation items specify how the
types and other entities of the language are to be mapped onto the
underlying machine. Operational items specify other properties of entities.
</P></UL>
<UL><P>There are six kinds of <I>representation items</I>:
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>s for representation attributes,
<FONT FACE="Arial, Helvetica">enumeration_representation_clause</FONT>s, <FONT FACE="Arial, Helvetica">record_representation_clause</FONT>s,
<FONT FACE="Arial, Helvetica">at_clause</FONT>s, <FONT FACE="Arial, Helvetica">component_clause</FONT>s, and <I>representation pragmas</I>.
They can be provided to give more efficient
representation or to interface with features that are outside the domain of
the language (for example, peripheral hardware).
</P></UL>
<UL><P>An <I>operational item</I> is an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT> for an
operational attribute.
</P></UL>
<UL><P>An operational item or a representation item applies to an entity
identified by a <FONT FACE="Arial, Helvetica">local_name</FONT>, which denotes an entity declared local to the
current declarative region, or a library unit declared immediately preceding a
representation pragma in a <FONT FACE="Arial, Helvetica">compilation</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">representation_clause ::= attribute_definition_clause
| enumeration_representation_clause
| record_representation_clause
| at_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><FONT FACE="Arial, Helvetica">aspect_clause ::= attribute_definition_clause
| enumeration_representation_clause
| record_representation_clause
| at_clause</FONT></TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<P><UL><UL>
A representation pragma is allowed only at places where a
<FONT FACE="Arial, Helvetica">representation_clause</FONT> or <FONT FACE="Arial, Helvetica">compilation_unit</FONT> is allowed.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
A representation pragma is allowed only at places where an
<FONT FACE="Arial, Helvetica">aspect_clause</FONT> or <FONT FACE="Arial, Helvetica">compilation_unit</FONT> is allowed.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>In a representation item, if the <FONT FACE="Arial, Helvetica">local_name</FONT> is a <FONT FACE="Arial, Helvetica">direct_name</FONT>, then it
shall resolve to denote a declaration (or, in the case of a <FONT FACE="Arial, Helvetica">pragma</FONT>, one or
more declarations) that occurs immediately within the same
<FONT FACE="Arial, Helvetica">declarative_region</FONT> as the representation item. If the <FONT FACE="Arial, Helvetica">local_name</FONT> has
an <FONT FACE="Arial, Helvetica">attribute_designator</FONT>, then it shall resolve to denote an
implementation-defined component (see 13.5.1) or a class-wide type implicitly
declared immediately within the same <FONT FACE="Arial, Helvetica">declarative_region</FONT> as the
representation item. A <FONT FACE="Arial, Helvetica">local_name</FONT> that is a
<I>library_unit_</I><FONT FACE="Arial, Helvetica">name</FONT> (only permitted in a representation pragma) shall
resolve to denote the <FONT FACE="Arial, Helvetica">library_item</FONT> that immediately precedes (except for
other pragmas) the representation pragma.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>In an operational item or representation item, if the <FONT FACE="Arial, Helvetica">local_name</FONT> is a
<FONT FACE="Arial, Helvetica">direct_name</FONT>, then it shall resolve to denote a declaration (or, in the
case of a <FONT FACE="Arial, Helvetica">pragma</FONT>, one or more declarations) that occurs immediately
within the same <FONT FACE="Arial, Helvetica">declarative_region</FONT> as the item. If the <FONT FACE="Arial, Helvetica">local_name</FONT>
has an <FONT FACE="Arial, Helvetica">attribute_designator</FONT>, then it shall resolve to denote an
implementation-defined component (see 13.5.1) or a class-wide type implicitly
declared immediately within the same <FONT FACE="Arial, Helvetica">declarative_region</FONT> as the
item. A <FONT FACE="Arial, Helvetica">local_name</FONT> that is a
<I>library_unit_</I><FONT FACE="Arial, Helvetica">name</FONT> (only permitted in a representation pragma) shall
resolve to denote the <FONT FACE="Arial, Helvetica">library_item</FONT> that immediately precedes (except for
other pragmas) the representation pragma.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 6: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>The <FONT FACE="Arial, Helvetica">local_name</FONT> of a <FONT FACE="Arial, Helvetica">representation_clause</FONT> or representation pragma
shall statically denote an entity (or, in the case of a <FONT FACE="Arial, Helvetica">pragma</FONT>, one or
more entities) declared immediately preceding it in a <FONT FACE="Arial, Helvetica">compilation</FONT>, or
within the same <FONT FACE="Arial, Helvetica">declarative_part</FONT>, <FONT FACE="Arial, Helvetica">package_specification</FONT>,
<FONT FACE="Arial, Helvetica">task_definition</FONT>, <FONT FACE="Arial, Helvetica">protected_definition</FONT>, or <FONT FACE="Arial, Helvetica">record_definition</FONT>
as the representation item. If a <FONT FACE="Arial, Helvetica">local_name</FONT> denotes a local callable
entity, it may do so through a local <FONT FACE="Arial, Helvetica">subprogram_renaming_declaration</FONT>
(as a way to resolve ambiguity in the presence of overloading); otherwise, the
<FONT FACE="Arial, Helvetica">local_name</FONT> shall not denote a <FONT FACE="Arial, Helvetica">renaming_declaration</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The <FONT FACE="Arial, Helvetica">local_name</FONT> of an <FONT FACE="Arial, Helvetica">aspect_clause</FONT> or representation pragma
shall statically denote an entity (or, in the case of a <FONT FACE="Arial, Helvetica">pragma</FONT>, one or
more entities) declared immediately preceding it in a <FONT FACE="Arial, Helvetica">compilation</FONT>, or
within the same <FONT FACE="Arial, Helvetica">declarative_part</FONT>, <FONT FACE="Arial, Helvetica">package_specification</FONT>,
<FONT FACE="Arial, Helvetica">task_definition</FONT>, <FONT FACE="Arial, Helvetica">protected_definition</FONT>, or <FONT FACE="Arial, Helvetica">record_definition</FONT>
as the representation or operational item. If a <FONT FACE="Arial, Helvetica">local_name</FONT> denotes a
local callable entity, it may do so through a local
<FONT FACE="Arial, Helvetica">subprogram_renaming_declaration</FONT> (as a way to resolve ambiguity in the
presence of overloading); otherwise, the <FONT FACE="Arial, Helvetica">local_name</FONT> shall not denote a
<FONT FACE="Arial, Helvetica">renaming_declaration</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 8: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>A representation item <I>directly specifies</I> an <I>aspect of representation</I> of
the entity denoted by the <FONT FACE="Arial, Helvetica">local_name</FONT>, except in the case of a type-related
representation item, whose <FONT FACE="Arial, Helvetica">local_name</FONT> shall denote a first subtype, and
which directly specifies an aspect of the subtype's type. A representation
item that names a subtype is either <I>subtype-specific</I> (Size and Alignment
clauses) or <I>type-related</I> (all others). Subtype-specific aspects may differ
for different subtypes of the same type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>An operational item <I>directly specifies</I> an <I>operational aspect</I> of the
type of the subtype denoted by the <FONT FACE="Arial, Helvetica">local_name</FONT>. The <FONT FACE="Arial, Helvetica">local_name</FONT> of an
operational item shall denote a first subtype. An operational item that names
a subtype is type-related.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 9: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>A representation item that directly specifies an aspect of a subtype or
type shall appear after the type is completely defined (see 3.11.1), and
before the subtype or type is frozen (see 13.14). If a representation item
is given that directly specifies an aspect of an entity, then it is illegal
to give another representation item that directly specifies the same aspect
of the entity.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>An operational item that directly specifies an aspect of a type shall appear
before the type is frozen (see 13.14). If an operational item is given that
directly specifies an aspect of a type, then it is illegal to give another
operational item that directly specifies the same aspect of the type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0009">8652/0009</A>; <A HREF="defect1.html#8652/0011">8652/0011</A>]
</FONT></B></P>
<UL><P>Representation aspects of a generic formal parameter are the same as
those of the actual. A type-related representation item is not allowed for a
descendant of a generic formal untagged type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Operational and representation aspects of a generic formal parameter are the
same as those of the actual. Operational and representation aspects of a
partial view are the same as those of the full view. A type-related
representation item is not allowed for a descendant of a generic formal
untagged type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 13: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>A representation item that is not supported by the implementation is illegal,
or raises an exception at run time.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A representation or operational item that is not supported by the
implementation is illegal, or raises an exception at run time.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 15: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<UL><P>A derived type inherits each type-related aspect of its parent type that
was directly specified before the declaration of the derived type, or (in the
case where the parent is derived) that was inherited by the parent type from
the grandparent type. A derived subtype inherits each subtype-specific
aspect of its parent subtype that was directly specified before the
declaration of the derived type, or (in the case where the parent is derived)
that was inherited by the parent subtype from the grandparent subtype, but
only if the parent subtype statically matches the first subtype of the parent
type. An inherited aspect of representation is overridden by a subsequent
representation item that specifies the same aspect of the type or subtype.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A derived type inherits each type-related aspect of representation of its
parent type that was directly specified before the declaration of the derived
type, or (in the case where the parent is derived) that was inherited by the
parent type from the grandparent type. A derived subtype inherits each
subtype-specific aspect of representation of its parent subtype that was
directly specified before the declaration of the derived type, or (in the case
where the parent is derived) that was inherited by the parent subtype from the
grandparent subtype, but only if the parent subtype statically matches the
first subtype of the parent type. An inherited aspect of representation is
overridden by a subsequent representation item that specifies the same aspect
of the type or subtype.
</P></UL>
<UL><P>In contrast, whether operational aspects are inherited by a derived type
depends on each specific aspect. When operational aspects are inherited by a
derived type, aspects that were directly specified before the declaration of the
derived type, or (in the case where the parent is derived) that were inherited
by the parent type from the grandparent type are inherited. An inherited
operational aspect is overridden by a subsequent operational item that specifies
the same aspect of the type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 18: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If an aspect of representation of an entity is not specified, it is
chosen by default in an unspecified manner.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>If an operational aspect is <I>specified</I> for an entity (meaning that it is
either directly specified or inherited), then that aspect of the entity is as
specified. Otherwise, the aspect of the entity has the default value for
that aspect.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 19: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>For the elaboration of a <FONT FACE="Arial, Helvetica">representation_clause</FONT>, any evaluable constructs
within it are evaluated.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For the elaboration of an <FONT FACE="Arial, Helvetica">aspect_clause</FONT>, any evaluable constructs
within it are evaluated.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">13.3 Representation Attributes</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace the title: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>Representation Attributes
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Operational and Representation Attributes
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>The values of certain implementation-dependent characteristics can be
obtained by interrogating appropriate representation attributes. Some of
these attributes are specifiable via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The values of certain implementation-dependent characteristics can be obtained
by interrogating appropriate operational or representation attributes. Some of
these attributes are specifiable via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>An <FONT FACE="Arial, Helvetica">attribute_designator</FONT> is allowed in an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>
only if this International Standard explicitly allows it, or for an
implementation-defined attribute if the implementation allows it. Each
specifiable attribute constitutes an aspect of representation.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An <FONT FACE="Arial, Helvetica">attribute_designator</FONT> is allowed in an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>
only if this International Standard explicitly allows it, or for an
implementation-defined attribute if the implementation allows it. Each
specifiable attribute constitutes an operational aspect or an aspect of
representation.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>The following attributes are defined:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The following representation attributes are defined: Address, Alignment, Size,
Storage_Size, and Component_Size.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 74: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>For every subtype S of a tagged type T (specific or class-wide), the following
attribute is defined:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The following operational attribute is defined: External_Tag.
</P></UL>
<UL><P>For every subtype S of a tagged type T (specific or class-wide):
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 75: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<P><UL><DL>
<DT>S'External_Tag<DD>S'External_Tag denotes an external string
representation for S'Tag; it is of the predefined type String. External_Tag may be specified
for a specific tagged type via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>; the
expression of such a clause shall be static. The default external tag
representation is implementation defined. See 3.9.2 and 13.13.2.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>S'External_Tag<DD>S'External_Tag denotes an external string
representation for S'Tag; it is of the predefined type String. External_Tag may be specified
for a specific tagged type via an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>; the
expression of such a clause shall be static. The default external tag
representation is implementation defined. See 3.9.2 and 13.13.2. The value
of External_Tag is never inherited; the default value is always used unless
a new value is directly specified for a type.</DL></UL></P>
<H3><FONT FACE="Arial, Helvetica">13.4 Enumeration Representation Clauses</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<P><UL><UL>
NOTES<BR>
11 Unchecked_Conversion may be used to query the internal codes used
for an enumeration type. The attributes of the type, such as Succ,
Pred, and Pos, are unaffected by the <FONT FACE="Arial, Helvetica">representation_clause</FONT>. For
example, Pos always returns the position number, <I>not</I> the internal
integer code that might have been specified in a <FONT FACE="Arial, Helvetica">representation_clause</FONT>.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
NOTES<BR>
11 Unchecked_Conversion may be used to query the internal codes used
for an enumeration type. The attributes of the type, such as Succ,
Pred, and Pos, are unaffected by the <FONT FACE="Arial, Helvetica">enumeration_representation_clause</FONT>. For
example, Pos always returns the position number, <I>not</I> the internal
integer code that might have been specified in an
<FONT FACE="Arial, Helvetica">enumeration_representation_clause</FONT>.</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">13.11 Storage Management</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>For every access subtype S, the following attributes are defined:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For every access subtype S, the following representation attributes are defined:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 39: [<A HREF="defect1.html#8652/0041">8652/0041</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>type</B> Mark_Release_Pool_Type
(Pool_Size : Storage_Elements.Storage_Count;
Block_Size : Storage_Elements.Storage_Count)
<B>is new</B> Root_Storage_Pool <B>with limited private</B>;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>type</B> Mark_Release_Pool_Type
(Pool_Size : Storage_Elements.Storage_Count;
Block_Size : Storage_Elements.Storage_Count)
<B>is new</B> Root_Storage_Pool <B>with private</B>;</TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">13.12 Pragma Restrictions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 8: [<A HREF="defect1.html#8652/0042">8652/0042</A>]
</FONT></B></P>
<UL><P>A <FONT FACE="Arial, Helvetica">pragma</FONT> Restrictions is a configuration pragma; unless otherwise
specified for a particular restriction, a partition shall obey the
restriction if a <FONT FACE="Arial, Helvetica">pragma</FONT> Restrictions applies to any compilation unit
included in the partition.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>For the purpose of checking whether a partition contains constructs
that violate any restriction (unless specified otherwise for a
particular restriction):
</P></UL>
<UL><UL><LI TYPE=DISC>
Generic instances are logically expanded at the point of instantiation;</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
If an object of a type is declared or allocated and not explicitly
initialized, then all expressions appearing in the definition for
the type and any of its ancestors are presumed to be used;</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
A <FONT FACE="Arial, Helvetica">default_expression</FONT> for a formal parameter or a generic formal
object is considered to be used if and only if the corresponding actual
parameter is not provided in a given call or instantiation.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 9: [<A HREF="defect1.html#8652/0042">8652/0042</A>; <A HREF="defect1.html#8652/0043">8652/0043</A>]
</FONT></B></P>
<UL><P>An implementation may place limitations on the values of the <FONT FACE="Arial, Helvetica">expression</FONT>
that are supported, and limitations on the supported combinations of
restrictions. The consequences of violating such limitations are
implementation defined.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>An implementation is permitted to omit restriction checks for code that is
recognized at compile time to be unreachable and for which no code is generated.
</P></UL>
<UL><P>Whenever enforcement of a restriction is not required prior to
execution, an implementation may nevertheless enforce the restriction prior to
execution of a partition to which the restriction applies, provided
that every execution of the partition would violate the restriction.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">13.13.1 The Package Streams</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">In paragraph 4 replace: [<A HREF="defect1.html#8652/0044">8652/0044</A>]
</FONT></B></P>
<UL><UL><PRE><TT>
<B>type</B> Stream_Element_Array <B>is</B>
<B>array</B>(Stream_Element_Offset <B>range</B> <>) <B>of</B> Stream_Element;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT>
<B>type</B> Stream_Element_Array <B>is</B>
<B>array</B>(Stream_Element_Offset <B>range</B> <>) <B>of aliased</B> Stream_Element;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 9: [<A HREF="defect1.html#8652/0044">8652/0044</A>]
</FONT></B></P>
<UL><P>The Write operation appends Item to the specified stream.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P><I><FONT SIZE=-2>Implementation Permissions</FONT></I>
</P></UL>
<UL><P>If Stream_Element'Size is not a multiple of System.Storage_Unit,
then the components of Stream_Element_Array need not be aliased.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">13.13.2 Stream-Oriented Attributes</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>The Write, Read, Output, and Input attributes convert values to a
stream of elements and reconstruct values from a stream.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The operational attributes Write, Read, Output, and Input convert values to a
stream of elements and reconstruct values from a stream.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<UL><P>For elementary types, the representation in terms of stream elements is
implementation defined. For composite types, the Write or Read attribute for
each component is called in a canonical order. The canonical order of
components is last dimension varying fastest for an array, and positional
aggregate order for a record. Bounds are not included in the stream if <I>T</I> is
an array type. If <I>T</I> is a discriminated type, discriminants are included only
if they have defaults. If <I>T</I> is a tagged type, the tag is not included.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For untagged derived types, the Write and Read attributes of the parent type
are inherited as specified in 13.1; otherwise, the default implementations of
these attributes are used.
The default implementations of Write and Read attributes execute as follows:
</P></UL>
<UL><P>For elementary types, the representation in terms of stream elements is
implementation defined. For composite types, the Write or Read attribute for
each component is called in canonical order, which is
last dimension varying fastest for an array, and positional
aggregate order for a record. Bounds are not included in the stream if <I>T</I> is
an array type. If <I>T</I> is a discriminated type, discriminants are included only
if they have defaults. If <I>T</I> is a tagged type, the tag is not included.
For type extensions, the Write or Read attribute for the parent type
is called, followed by the Write or Read attribute of each component of the
extension part, in canonical order. For a limited type extension, if the
attribute of any ancestor type of <I>T</I> has been directly specified and the
attribute of any ancestor type of the type of any of the extension components
which are of a limited type has not been specified, the attribute of <I>T</I>
shall be directly specified.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 25: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<UL><P>Unless overridden by an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>, these subprograms
execute as follows:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For untagged derived types, the Output and Input attributes of the parent type
are inherited as specified in 13.1; otherwise, the default implementations of
these attributes are used. The default implementations of Output and Input
attributes execute as follows:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 35: [<A HREF="defect1.html#8652/0045">8652/0045</A>]
</FONT></B></P>
<UL><P>In the default implementation of Read and Input for a composite type,
for each scalar component that is a discriminant or whose
<FONT FACE="Arial, Helvetica">component_declaration</FONT> includes a <FONT FACE="Arial, Helvetica">default_expression</FONT>, a check is
made that the value
returned by Read for the component belongs to its subtype. Constraint_Error
is raised if this check fails. For other scalar components, no check is
made. For each component that is of an access type, if the implementation
can detect that the value returned by Read for the component is not a value
of its subtype, Constraint_Error is raised. If the value is not a value of
its subtype and this error is not detected, the component has an abnormal
value, and erroneous execution can result (see 13.9.1).
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>In the default implementation of Read and Input for a type, End_Error
is raised if the end of the stream is reached before the reading of a value of
the type is completed.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 36: [<A HREF="defect1.html#8652/0040">8652/0040</A>]
</FONT></B></P>
<UL><P>The stream-oriented attributes may be specified for any type via an
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>. All nonlimited types have default
implementations for these operations. An <FONT FACE="Arial, Helvetica">attribute_reference</FONT> for one of
these attributes is illegal if the type is limited, unless the attribute
has been specified by an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>. For an
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT> specifying one of these attributes, the
subtype of the Item parameter shall be the base subtype if scalar, and the
first subtype otherwise. The same rule applies to the result of the Input
function.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The stream-oriented attributes may be specified for any type via an
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>. All nonlimited types have default
implementations for these operations. An <FONT FACE="Arial, Helvetica">attribute_reference</FONT> for one of
these attributes is illegal if the type is limited, unless the attribute
has been specified by an <FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT> or (for a type
extension) the attribute has been specified for an ancestor type. For an
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT> specifying one of these attributes, the
subtype of the Item parameter shall be the base subtype if scalar, and the
first subtype otherwise. The same rule applies to the result of the Input
function.<BR>
<I><FONT SIZE=-2>Implementation Requirements</FONT></I><BR>
For every subtype S of a language-defined nonlimited specific type <I>T</I>, the
output generated by S'Output or S'Write shall be readable by S'Input or
S'Read, respectively. This rule applies across partitions if the implementation
conforms to the Distributed Systems Annex.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">13.14 Freezing Rules</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 3: [<A HREF="defect1.html#8652/0014">8652/0014</A>]
</FONT></B></P>
<UL><P>The end of a <FONT FACE="Arial, Helvetica">declarative_part</FONT>, <FONT FACE="Arial, Helvetica">protected_body</FONT>, or a declaration of a
library package or generic library package, causes <I>freezing</I> of each entity
declared within it, except for incomplete types. A noninstance body causes
freezing of each entity declared before it within the same <FONT FACE="Arial, Helvetica">declarative_part</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The end of a <FONT FACE="Arial, Helvetica">declarative_part</FONT>, <FONT FACE="Arial, Helvetica">protected_body</FONT>, or a declaration of a
library package or generic library package, causes <I>freezing</I> of each entity
declared within it, except for incomplete types. A noninstance body other than
a renaming-as-body causes freezing of each entity declared before it within the
same <FONT FACE="Arial, Helvetica">declarative_part</FONT>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0046">8652/0046</A>]
</FONT></B></P>
<UL><P>A construct that (explicitly or implicitly) references an entity can
cause the <I>freezing</I> of the entity, as defined by subsequent paragraphs. At
the place where a construct causes freezing, each <FONT FACE="Arial, Helvetica">name</FONT>, expression,
or <FONT FACE="Arial, Helvetica">range</FONT> within the construct causes freezing:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A construct that (explicitly or implicitly) references an entity can
cause the <I>freezing</I> of the entity, as defined by subsequent paragraphs. At
the place where a construct causes freezing, each <FONT FACE="Arial, Helvetica">name</FONT>, <FONT FACE="Arial, Helvetica">expression</FONT>,
<FONT FACE="Arial, Helvetica">implicit_dereference</FONT>, or <FONT FACE="Arial, Helvetica">range</FONT> within the construct causes freezing:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0046">8652/0046</A>]
</FONT></B></P>
<UL><P>A static expression causes freezing where it occurs. A nonstatic
expression causes freezing where it occurs, unless the expression is part of
a <FONT FACE="Arial, Helvetica">default_expression</FONT>, a <FONT FACE="Arial, Helvetica">default_name</FONT>, or a per-object expression of a
component's <FONT FACE="Arial, Helvetica">constraint</FONT>, in which case, the freezing occurs later as part of
another construct.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A static expression causes freezing where it occurs. An object
name or nonstatic expression causes freezing where it occurs, unless
the name or expression is part of a <FONT FACE="Arial, Helvetica">default_expression</FONT>, a
<FONT FACE="Arial, Helvetica">default_name</FONT>, or a per-object expression of a component's <FONT FACE="Arial, Helvetica">constraint</FONT>,
in which case, the freezing occurs later as part of another construct.
</P></UL>
<UL><P>An implicit call freezes the same entities that would
be frozen by an explicit call. This is true even if the implicit
call is removed via implementation permissions.
</P></UL>
<UL><P>If an expression is implicitly converted to a type or subtype <I>T</I>,
then at the place where the expression causes freezing,
<I>T</I> is frozen.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 11: [<A HREF="defect1.html#8652/0046">8652/0046</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
At the place where a <FONT FACE="Arial, Helvetica">name</FONT> causes freezing, the entity denoted by
the <FONT FACE="Arial, Helvetica">name</FONT> is frozen, unless the <FONT FACE="Arial, Helvetica">name</FONT> is a <FONT FACE="Arial, Helvetica">prefix</FONT> of an expanded
name; at the place where an object <FONT FACE="Arial, Helvetica">name</FONT> causes freezing, the
nominal subtype associated with the <FONT FACE="Arial, Helvetica">name</FONT> is frozen.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
At the place where an <FONT FACE="Arial, Helvetica">implicit_dereference</FONT> causes freezing,
the nominal subtype associated with the <FONT FACE="Arial, Helvetica">implicit_dereference</FONT> is frozen.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 19: [<A HREF="defect1.html#8652/0009">8652/0009</A>]
</FONT></B></P>
<UL><P>A representation item that directly specifies an aspect of an entity shall
appear before the entity is frozen (see 13.1).
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An operational item or a representation item that directly specifies an
aspect of an entity shall appear before the entity is frozen (see 13.1).
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex A: Predefined Language Environment</FONT></H2>
<P></P>
<P><B><FONT FACE="Arial, Helvetica">In paragraph 2 replace: [<A HREF="defect1.html#8652/0047">8652/0047</A>]
</FONT></B></P>
<UL><P>Finalization -- 7.6<BR>
Interrupts -- C.3.2
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Finalization -- 7.6<BR>
Float_Text_IO -- A.10.9<BR>
Float_Wide_Text_IO -- A.11<BR>
Integer_Text_IO -- A.10.8<BR>
Integer_Wide_Text_IO -- A.11<BR>
Interrupts -- C.3.2
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.1 The Package Standard</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0028">8652/0028</A>]
</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "=" (Left, Right : Boolean) <B><B>return</B></B> Boolean;
-- <B>function</B> "/=" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> "<" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> "<=" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> ">" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> ">=" (Left, Right : Boolean) <B>return</B> Boolean;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "=" (Left, Right : Boolean'Base) <B>return</B> Boolean;
-- <B>function</B> "/=" (Left, Right : Boolean'Base) <B>return</B> Boolean;
-- <B>function</B> "<" (Left, Right : Boolean'Base) <B>return</B> Boolean;
-- <B>function</B> "<=" (Left, Right : Boolean'Base) <B>return</B> Boolean;
-- <B>function</B> ">" (Left, Right : Boolean'Base) <B>return</B> Boolean;
-- <B>function</B> ">=" (Left, Right : Boolean'Base) <B>return</B> Boolean;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0028">8652/0028</A>]
</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "and" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> "or" (Left, Right : Boolean) <B>return</B> Boolean;
-- <B>function</B> "xor" (Left, Right : Boolean) <B>return</B> Boolean;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "and" (Left, Right : Boolean'Base) <B>return</B> Boolean'Base;
-- <B>function</B> "or" (Left, Right : Boolean'Base) <B>return</B> Boolean'Base;
-- <B>function</B> "xor" (Left, Right : Boolean'Base) <B>return</B> Boolean'Base;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0028">8652/0028</A>]
</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "not" (Right : Boolean) <B>return</B> Boolean;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT> -- <B>function</B> "not" (Right : Boolean'Base) <B>return</B> Boolean'Base;</TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">A.4.2 The Package Strings.Maps</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 63: [<A HREF="defect1.html#8652/0048">8652/0048</A>]
</FONT></B></P>
<P><UL><UL>
To_Range returns the Character_Sequence value R, with lower
bound 1 and upper bound Map'Length, such that if D = To_Domain(Map)
then D(I) maps to R(I) for each I in D'Range.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
To_Range returns the Character_Sequence value R, such that if D =
To_Domain (Map), then R has the same bounds as D, and D(I) maps to R(I)
for each I in D'Range.</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">A.4.3 Fixed-Length String Handling</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 68: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<P><UL><UL>
Find_Token returns in First and Last the indices of the
beginning and end of the first slice of Source all of whose elements
satisfy the Test condition, and such that the elements (if any)
immediately before and after the slice do not satisfy the Test
condition. If no such slice exists, then the value returned for Last
is zero, and the value returned for First is Source'First.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
Find_Token returns in First and Last the indices of the
beginning and end of the first slice of Source all of whose elements
satisfy the Test condition, and such that the elements (if any)
immediately before and after the slice do not satisfy the Test
condition. If no such slice exists, then the value returned for Last
is zero, and the value returned for First is Source'First;
however, if Source'First is not in Positive then Constraint_Error is raised.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 74: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<P><UL><UL>
If Low > Source'Last+1, or High < Source'First-1, then Index_Error
is propagated. Otherwise, if High >= Low then the returned
string comprises Source(Source'First..Low-1) & By &
Source(High+1..Source'Last), and if High < Low then the returned
string is Insert(Source, Before=>Low, New_Item=>By).</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
If Low > Source'Last+1, or High < Source'First-1, then Index_Error
is propagated. Otherwise:</UL></UL></P>
<UL><UL><UL><LI TYPE=DISC>
If High >= Low, then the returned
string comprises Source(Source'First..Low-1) & By &
Source(High+1..Source'Last), but with lower bound 1.</LI></UL></UL></UL>
<UL><UL><UL><LI TYPE=DISC>
If High < Low, then the returned string is Insert(Source,
Before=>Low, New_Item=>By).</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 86: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<P><UL><UL>
If From <= Through, the returned string is Replace_Slice(Source,
From, Through, ""), otherwise it is Source.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
If From <= Through, the returned string is Replace_Slice(Source,
From, Through, ""), otherwise it is Source with lower bound 1.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 106: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<P><UL><UL>
These functions replicate a character or string a specified
number of times. The first function returns a string whose length is
Left and each of whose elements is Right. The second function
returns a string whose length is Left*Right'Length and whose value is
the null string if Left = 0 and is (Left-1)*Right & Right otherwise.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
These functions replicate a character or string a specified
number of times. The first function returns a string whose length is
Left and each of whose elements is Right. The second function
returns a string whose length is Left*Right'Length and whose value is
the null string if Left = 0 and otherwise is (Left-1)*Right & Right with
lower bound 1.</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">A.4.4 Bounded-Length String Handling</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 101: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<P><UL><UL>
Returns the slice at positions Low through High in the string
represented by Source; propagates Index_Error if Low > Length(Source)+1.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
Returns the slice at positions Low through High in the string
represented by Source; propagates Index_Error if Low > Length(Source)+1 or
High > Length(Source).</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 105: [<A HREF="defect1.html#8652/0049">8652/0049</A>]
</FONT></B></P>
<UL><P>Each of the transformation subprograms (Replace_Slice, Insert,
Overwrite, Delete), selector subprograms (Trim, Head, Tail), and constructor
functions ("*") has an effect based on its corresponding subprogram in
Strings.Fixed, and Replicate is based on Fixed."*". For each of these
subprograms, the corresponding fixed-length string subprogram is applied to
the string represented by the Bounded_String parameter. To_Bounded_String is
applied the result string, with Drop (or Error in the case of
Generic_Bounded_Length."*") determining the effect when the string length
exceeds Max_Length.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Each of the transformation subprograms (Replace_Slice, Insert,
Overwrite, Delete), selector subprograms (Trim, Head, Tail), and constructor
functions ("*") has an effect based on its corresponding subprogram in
Strings.Fixed, and Replicate is based on Fixed."*". In the case of a function,
the corresponding fixed-length string function is applied to
the string represented by the Bounded_String parameter. To_Bounded_String is
applied to the result string, with Drop (or Error in the case of
Generic_Bounded_Length."*") determining the effect when the string length
exceeds Max_Length. In the case of a procedure, the corresponding function
in Strings.Bounded.Generic_Bounded_Length is applied, with the result assigned
into the Source parameter.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.5.1 Elementary Functions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0020">8652/0020</A>]
</FONT></B></P>
<UL><P>The library package Numerics.Elementary_Functions defines the same subprograms
as Numerics.Generic_Elementary_Functions, except that the predefined type Float
is systematically substituted for Float_Type'Base throughout. Nongeneric
equivalents of Numerics.Generic_Elementary_Functions for each of the other
predefined floating point types are defined similarly, with the names
Numerics.Short_Elementary_Functions, Numerics.Long_Elementary_Functions, etc.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The library package Numerics.Elementary_Functions is declared pure and defines
the same subprograms as Numerics.Generic_Elementary_Functions, except that the
predefined type Float is systematically substituted for Float_Type'Base
throughout. Nongeneric equivalents of Numerics.Generic_Elementary_Functions for
each of the other predefined floating point types are defined similarly, with
the names Numerics.Short_Elementary_Functions,
Numerics.Long_Elementary_Functions, etc.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.5.2 Random Number Generation</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 40: [<A HREF="defect1.html#8652/0050">8652/0050</A>]
</FONT></B></P>
<UL><P>Invoking Value with a string that is not the image of any generator
state raises Constraint_Error.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P><FONT SIZE=-2><I>Bounded (Run-Time) Errors</I></FONT><BR>
It is a bounded error to invoke Value with a string that is not the
image of any generator state. If the error is detected, Constraint_Error or
Program_Error is raised. Otherwise, a call to Reset with the resulting
state will produce a generator such that calls to Random with this
generator will produce a sequence of values of the appropriate subtype,
but which might not be random in character. That is, the sequence of
values might not fulfill the implementation requirements of this subclause.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.10.1 The Package Text_IO</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 21: [<A HREF="defect1.html#8652/0051">8652/0051</A>]
</FONT></B></P>
<UL><P><I>-- Buffer control</I>
</P></UL>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in out</B> File_Type);
<B>procedure</B> Flush;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P><I>-- Buffer control</I>
</P></UL>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in</B> File_Type);
<B>procedure</B> Flush;</TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">A.10.3 Default Input, Output, and Error Files</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0052">8652/0052</A>]
</FONT></B></P>
<P><UL><UL>
Returns the standard error file (see A.10), or an access value
designating the standard output file, respectively.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
Returns the standard error file (see A.10), or an access value
designating the standard error file, respectively.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 20: [<A HREF="defect1.html#8652/0051">8652/0051</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in out</B> File_Type);
<B>procedure</B> Flush;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in</B> File_Type);
<B>procedure</B> Flush;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 22: [<A HREF="defect1.html#8652/0053">8652/0053</A>]
</FONT></B></P>
<UL><P>The execution of a program is erroneous if it attempts to use a current
default input, default output, or default error file that no longer exists.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The execution of a program is erroneous if it invokes an operation on a
current default input, default output, or default error file, and if the
corresponding file object is closed or no longer exists.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 23: [<A HREF="defect1.html#8652/0053">8652/0053</A>]
</FONT></B></P>
<UL><P>If the Close operation is applied to a file object that is also serving
as the default input, default output, or default error file, then subsequent
operations on such a default file are erroneous.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.10.10 Input-Output for Enumeration Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 17: [<A HREF="defect1.html#8652/0054">8652/0054</A>]
</FONT></B></P>
<UL><P>Although the specification of the generic package Enumeration_IO would
allow instantiation for an float type, this is not the intended purpose of
this generic package, and the effect of such instantiations is not defined by
the language.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Although the specification of the generic package Enumeration_IO would
allow instantiation for an integer type, this is not the intended purpose
of this generic package, and the effect of such instantiations is not
defined by the language.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.12.1 The Package Streams.Stream_IO</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert before paragraph 2: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The library package Streams.Stream_IO has the following declaration:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>The elements of a stream file are stream elements. If positioning is supported
for the specified external file, a current index and current size are maintained
for the file as described in A.8. If positioning is not supported, a current
index is not maintained, and the current size is implementation defined.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 25: [<A HREF="defect1.html#8652/0051">8652/0051</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in out</B> File_Type);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Flush (File : <B>in</B> File_Type);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 28: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The subprograms Create, Open, Close, Delete, Reset, Mode, Name, Form, Is_Open,
and End_of_File have the same effect as the corresponding subprograms in
Sequential_IO (see A.8.2).
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>The Set_Mode procedure changes the mode of the file. If the new mode is
Append_File, the file is positioned to its end; otherwise, the position in the
file is unchanged.
</P></UL>
<UL><P>The Flush procedure synchronizes the external file with the internal file (by
flushing any internal buffers) without closing the file or changing the
position. Mode_Error is propagated if the mode of the file is In_File.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 29: [<A HREF="defect1.html#8652/0056">8652/0056</A>]
</FONT></B></P>
<UL><P>The Stream function returns a Stream_Access result from a File_Type
object, thus allowing the stream-oriented attributes Read, Write, Input, and
Output to be used on the same file for multiple types.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The Stream function returns a Stream_Access result from a File_Type
object, thus allowing the stream-oriented attributes Read, Write, Input, and
Output to be used on the same file for multiple types. Stream propagates
Status_Error if File is not open.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 30: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The procedures Read and Write are equivalent to the corresponding
operations in the package Streams. Read propagates Mode_Error if the mode of
File is not In_File. Write propagates Mode_Error if the mode of File is not
Out_File or Append_File. The Read procedure with a Positive_Count parameter
starts reading at the specified index. The Write procedure with a
Positive_Count parameter starts writing at the specified index.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>The Size function returns the current size of the file.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 31: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The Index function returns the current file index, as a count (in stream
elements) from the beginning of the file. The position of the first element
in the file is 1.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The Index function returns the current index.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 32: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The Set_Index procedure sets the current index to the specified value.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>If positioning is supported for the external file, the current index is
maintained as follows:
</P></UL>
<UL><UL><LI TYPE=DISC>
For Open and Create, if the Mode parameter is Append_File, the current
index is set to the current size of the file plus one; otherwise, the current
index is set to one.</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
For Reset, if the Mode parameter is Append_File, or no Mode parameter
is given and the current mode is Append_File, the current index is set to the
current size of the file plus one; otherwise, the current index is set to one.</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
For Set_Mode, if the new mode is Append_File, the current index is set
to current size plus one; otherwise, the current index is unchanged.</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
For Read and Write without a Positive_Count parameter, the current
index is incremented by the number of stream elements read or written.</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
For Read and Write with a Positive_Count parameter, the value of the
current index is set to the value of the Positive_Count parameter plus the
number of stream elements read or written.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 34: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The Size function returns the current size of the file, in stream elements.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 35: [<A HREF="defect1.html#8652/0055">8652/0055</A>]
</FONT></B></P>
<UL><P>The Set_Mode procedure changes the mode of the file. If the new mode is
Append_File, the file is positioned to its end; otherwise, the position in
the file is unchanged.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 36: [<A HREF="defect1.html#8652/0055">8652/0055</A>; <A HREF="defect1.html#8652/0056">8652/0056</A>]
</FONT></B></P>
<UL><P>The Flush procedure synchronizes the external file with the internal file (by
flushing any internal buffers) without closing the file or changing the
position. Mode_Error is propagated if the mode of the file is In_File.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P><FONT SIZE=-2><I>Erroneous Execution</I></FONT><BR>
If the File_Type object passed to the Stream function
is later closed or finalized, and the stream-oriented attributes are
subsequently called (explicitly or implicitly) on the Stream_Access value
returned by Stream, execution is erroneous. This rule applies even if the
File_Type object was opened again after it had been closed.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">A.14 File Sharing</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 3: [<A HREF="defect1.html#8652/0057">8652/0057</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
Standard_Input and Standard_Output are associated with distinct
external files, so operations on one of these files cannot affect
operations on the other file. In particular, reading from
Standard_Input does not affect the current page, line, and column
numbers for Standard_Output, nor does writing to Standard_Output
affect the current page, line, and column numbers for Standard_Input.</LI></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex B: Interface to Other Languages</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">B.1 Interfacing Pragmas</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 9: [<A HREF="defect1.html#8652/0058">8652/0058</A>]
</FONT></B></P>
<P><UL><UL>
A <FONT FACE="Arial, Helvetica">pragma</FONT> Linker_Options is allowed only at the place of a
<FONT FACE="Arial, Helvetica">declarative_item</FONT>.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<P><UL><UL>
For <FONT FACE="Arial, Helvetica">pragma</FONT>s Import and Export, the argument for Link_Name shall not
be given without the <FONT FACE="Arial, Helvetica">pragma_argument_identifier</FONT> unless the argument
for External_Name is given.</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">B.3 Interfacing with C</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0059">8652/0059</A>]
</FONT></B></P>
<UL><P>The facilities relevant to interfacing with the C language are the
package Interfaces.C and its children; and support for the Import, Export,
and Convention pragmas with <I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> C.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The facilities relevant to interfacing with the C language are the
package Interfaces.C and its children; support for the Import, Export,
and Convention pragmas with <I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> C; and support
for the Convention pragma with <I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> C_Pass_By_Copy.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 20: [<A HREF="defect1.html#8652/0060">8652/0060</A>]
</FONT></B></P>
<UL><UL><PRE><TT>nul : <B>constant</B> char := char'First;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT>nul : <B>constant</B> char := <I>implementation-defined</TT></I>;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 30: [<A HREF="defect1.html#8652/0060">8652/0060</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>type</B> wchar_t <B>is</B> <I>implementation-defined</TT></I>;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>type</B> wchar_t <B>is</B> <I><implementation-defined discrete type></TT></I>;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 31: [<A HREF="defect1.html#8652/0060">8652/0060</A>]
</FONT></B></P>
<UL><UL><PRE><TT>wide_nul : <B>constant</B> wchar_t := wchar_t'First;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT>wide_nul : <B>constant</B> wchar_t := <I>implementation-defined</TT></I>;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 60: [<A HREF="defect1.html#8652/0059">8652/0059</A>]
</FONT></B></P>
<P><UL><UL>
The To_C and To_Ada subprograms that convert between Wide_String
and wchar_array have analogous effects to the To_C and To_Ada
subprograms that convert between String and char_array, except that
wide_nul is used instead of nul.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>A Convention pragma with <I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> C_Pass_By_Copy shall
only be applied to a type.
</P></UL>
<UL><P>The eligibility rules in B.1 do not apply to convention C_Pass_By_Copy.
Instead, a type T is eligible for convention C_Pass_By_Copy if T is a record
type that has no discriminants and that only has components with statically
constrained subtypes, and each component is C-compatible.
</P></UL>
<UL><P>If a type is C_Pass_By_Copy-compatible then it is also C-compatible.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 61: [<A HREF="defect1.html#8652/0059">8652/0059</A>]
</FONT></B></P>
<UL><P>An implementation shall support pragma Convention with a C
<I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> for a C-eligible type (see B.1)
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An implementation shall support pragma Convention with a C
<I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> for a C-eligible type (see B.1).
An implementation shall support pragma Convention
with a C_Pass_By_Copy <I>convention_</I><FONT FACE="Arial, Helvetica">identifier</FONT> for a
C_Pass_By_Copy-eligible type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert before paragraph 63: [<A HREF="defect1.html#8652/0060">8652/0060</A>]
</FONT></B></P>
<UL><P>An implementation should support the following interface correspondences
between Ada and C.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>The constants nul and wide_nul should have a representation of zero.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 68: [<A HREF="defect1.html#8652/0059">8652/0059</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
An Ada <B>access</B> T parameter, or an Ada <B>out</B> or <B>in out</B> parameter of
an elementary type T, is passed as a t* argument to a C function,
where t is the C type corresponding to the Ada type T. In the
case of an elementary <B>out</B> or <B>in out</B> parameter, a pointer to a
temporary copy is used to preserve by-copy semantics.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
An Ada parameter of a C_Pass_By_Copy-compatible (record) type T,
of mode <B>in</B>, is passed as a t argument to a C function, where t is the
C struct corresponding to the Ada type T.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 69: [<A HREF="defect1.html#8652/0059">8652/0059</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
An Ada parameter of a record type T, of any mode, is passed as a
t* argument to a C function, where t is the C struct
corresponding to the Ada type T.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
An Ada parameter of a record type T, of any mode, other than an <B>in</B>
parameter of a C_Pass_By_Copy-compatible type, is passed as a
t* argument to a C function, where t is the C struct corresponding to the
Ada type T.</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">B.3.1 The Package Interfaces.C.Strings</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 24: [<A HREF="defect1.html#8652/0061">8652/0061</A>]
</FONT></B></P>
<P><UL><UL>
If Item is <B>null</B>, then To_Chars_Ptr returns Null_Ptr. Otherwise,
if Nul_Check is True and Item.<B>all</B> does not contain nul, then the
function propagates Terminator_Error; if Nul_Check is True and
Item.<B>all</B> does contain nul, To_Chars_Ptr performs a pointer conversion
with no allocation of memory.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
If Item is <B>null</B>, then To_Chars_Ptr returns Null_Ptr.
If Item is not <B>null</B>, Nul_Check is True, and Item.<B>all</B> does not
contain nul, then the function propagates Terminator_Error; otherwise
To_Chars_Ptr performs a pointer conversion without allocation of memory.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 36: [<A HREF="defect1.html#8652/0062">8652/0062</A>]
</FONT></B></P>
<P><UL><UL>
If Item = Null_Ptr then Value(Item) propagates Dereference_Error.
Otherwise Value returns the shorter of two arrays: the first
Length chars pointed to by Item, and Value(Item). The lower bound of
the result is 0.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
If Item = Null_Ptr, then Value propagates Dereference_Error.
Otherwise, Value returns the shorter of two arrays, either the first Length
chars pointed to by Item, or Value(Item). The lower bound of the result is 0.
If Length is 0, then Value propagates Constraint_Error.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 40: [<A HREF="defect1.html#8652/0063">8652/0063</A>]
</FONT></B></P>
<P><UL><UL>
Equivalent to To_Ada(Value(Item, Length), Trim_Nul=>True).</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
Equivalent to To_Ada(Value(Item, Length) & nul, Trim_Nul => True).</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 44: [<A HREF="defect1.html#8652/0064">8652/0064</A>]
</FONT></B></P>
<P><UL><UL>
This procedure updates the value pointed to by Item, starting at
position Offset, using Chars as the data to be copied into the array.
Overwriting the nul terminator, and skipping with the Offset past the
nul terminator, are both prevented if Check is True, as follows:</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
If Item = Null_Ptr, then Update propagates Dereference_Error. Otherwise,
this procedure updates the value pointed to by Item, starting at
position Offset, using Chars as the data to be copied into the array.
Overwriting the nul terminator, and skipping with the Offset past the
nul terminator, are both prevented if Check is True, as follows:</UL></UL></P>
<H3><FONT FACE="Arial, Helvetica">B.3.2 The Generic Package Interfaces.C.Pointers</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 49: [<A HREF="defect1.html#8652/0065">8652/0065</A>]
</FONT></B></P>
<UL><UL><PRE><TT> <B>loop</B>
Element := Source_Temp_Ptr.<B>all</B>;
Target_Temp_Ptr.<B>all</B> := Element;
<B>exit when</B> Element = C.nul;
Char_Ptrs.Increment(Target_Temp_Ptr);
Char_Ptrs.Increment(Source_Temp_Ptr);
<B>end loop</B>;
<B>end</B> Strcpy;
<B>begin</B>
...
<B>end</B> Test_Pointers;</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT> <B>loop</B>
Element := Source_Temp_Ptr.<B>all</B>;
Target_Temp_Ptr.<B>all</B> := Element;
<B>exit when</B> C."="(Element, C.nul);
Char_Ptrs.Increment(Target_Temp_Ptr);
Char_Ptrs.Increment(Source_Temp_Ptr);
<B>end loop</B>;
<B>end</B> Strcpy;
<B>begin</B>
...
<B>end</B> Test_Pointers;</TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">B.4 Interfacing with COBOL</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 63: [<A HREF="defect1.html#8652/0066">8652/0066</A>]
</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Unsigned: if Item comprises zero or more leading space
characters followed by one or more decimal digit characters then Valid
returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Unsigned: if Item comprises one or more decimal digit
characters then Valid returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 64: [<A HREF="defect1.html#8652/0066">8652/0066</A>]
</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Leading_Separate: if Item comprises zero or more
leading space characters, followed by a single occurrence
of the plus or minus sign character, and then one or more
decimal digit characters, then Valid returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Leading_Separate: if Item comprises a single occurrence of the
plus or minus sign character, and then one or more decimal digit
characters, then Valid returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 65: [<A HREF="defect1.html#8652/0066">8652/0066</A>]
</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Trailing_Separate: if Item comprises zero or more
leading space characters, followed by one or more decimal
digit characters and finally a plus or minus sign
character, then Valid returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
Format=Trailing_Separate: if Item comprises one or more decimal
digit characters followed by a plus or minus sign character, then
Valid returns True, else it returns False.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 71: [<A HREF="defect1.html#8652/0067">8652/0067</A>]
</FONT></B></P>
<P><UL><UL>
This function returns the Numeric value for Item, represented in
accordance with Format. Conversion_Error is propagated if Num is
negative and Format is Unsigned.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
This function returns the Numeric value for Item, represented in
accordance with Format. The length of the returned value is Length(Format),
and the lower bound is 1. Conversion_Error is propagated if Item is
negative and Format is Unsigned.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 79: [<A HREF="defect1.html#8652/0067">8652/0067</A>]
</FONT></B></P>
<P><UL><UL>
This function returns the Packed_Decimal value for Item,
represented in accordance with Format. Conversion_Error is
propagated if Num is negative and Format is Packed_Unsigned.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
This function returns the Packed_Decimal value for Item,
represented in accordance with Format. The length of the returned value
is Length(Format), and the lower bound is 1. Conversion_Error is
propagated if Item is negative and Format is Packed_Unsigned.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 87: [<A HREF="defect1.html#8652/0067">8652/0067</A>]
</FONT></B></P>
<P><UL><UL>
This function returns the Byte_Array value for Item, represented
in accordance with Format.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
This function returns the Byte_Array value for Item, represented
in accordance with Format. The length of the returned value is
Length(Format), and the lower bound is 1.</UL></UL></P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex C: Systems Programming</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">C.3.1 Protected Procedure Handlers</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0068">8652/0068</A>]
</FONT></B></P>
<UL><P>When a protected object is finalized, for any of its procedures that are
attached to interrupts, the handler is detached. If the handler was attached
by a procedure in the Interrupts package or if no user handler was previously
attached to the interrupt, the default treatment is restored. Otherwise,
that is, if an Attach_Handler pragma was used, the previous handler is
restored.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>When a protected object is finalized, for any of its procedures that are
attached to interrupts, the handler is detached. If the handler was attached by
a procedure in the Interrupts package or if no user handler was previously
attached to the interrupt, the default treatment is restored. If an
Attach_Handler pragma was used and the most recently attached handler
for the same interrupt is the same as the one that was attached at the time the
protected object was initialized, the previous handler is restored.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 14: [<A HREF="defect1.html#8652/0068">8652/0068</A>]
</FONT></B></P>
<UL><P>If the Ceiling_Locking policy (see D.3) is in effect and an interrupt is
delivered to a handler, and the interrupt hardware priority is higher than
the ceiling priority of the corresponding protected object, the execution of
the program is erroneous.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>If the handlers for a given interrupt attached via pragma Attach_Handler are
not attached and detached in a stack-like (LIFO) order, program execution is
erroneous. In particular, when a protected object is finalized, the execution
is erroneous if any of the procedures of the protected object are attached to
interrupts via pragma Attach_Handler and the most recently attached handler for
the same interrupt is not the same as the one that was attached at the time the
protected object was initialized.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">C.3.2 The Package Interrupts</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 16: [<A HREF="defect1.html#8652/0069">8652/0069</A>]
</FONT></B></P>
<UL><P>The Current_Handler function returns a value that represents the
attached handler of the interrupt. If no user-defined handler is attached to
the interrupt, Current_Handler returns a value that designates the default
treatment; calling Attach_Handler or Exchange_Handler with this value
restores the default treatment.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The Current_Handler function returns a value that represents the
attached handler of the interrupt. If no user-defined handler is attached to
the interrupt, Current_Handler returns <B>null</B>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0069">8652/0069</A>]
</FONT></B></P>
<UL><P>The Exchange_Handler procedure operates in the same manner as Attach_Handler
with the addition that the value returned in Old_Handler designates
the previous treatment for the specified interrupt.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The Exchange_Handler procedure operates in the same manner as Attach_Handler
with the addition that the value returned in Old_Handler designates
the previous treatment for the specified interrupt. If the previous treatment
is not a user-defined handler, <B>null</B> is returned.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">C.7.1 The Package Task_Identification</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">In paragraph 3 replace: [<A HREF="defect1.html#8652/0070">8652/0070</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Abort_Task (T : <B>in out</B> Task_Id);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>procedure</B> Abort_Task (T : <B>in</B> Task_Id);</TT></PRE></UL></UL>
<H3><FONT FACE="Arial, Helvetica">C.7.2 The Package Task_Attributes</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 13: [<A HREF="defect1.html#8652/0071">8652/0071</A>]
</FONT></B></P>
<UL><P>For all the operations declared in this package, Tasking_Error is raised
if the task identified by T is terminated. Program_Error is raised if the
value of T is Null_Task_ID.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P><I><FONT SIZE=-2>Bounded (Run-Time) Errors</FONT></I><BR>
If the package Ada.Task_Attributes is instantiated with a controlled
type and the controlled type has user-defined Adjust or Finalize
operations that in turn access task attributes by any of the above
operations, then a call of Set_Value of the instantiated package
constitutes a bounded error. The call may perform as expected or
may result in forever blocking the calling task and subsequently some
or all tasks of the partition.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 15: [<A HREF="defect1.html#8652/0071">8652/0071</A>]
</FONT></B></P>
<UL><P>If a value of Task_ID is passed as a parameter to any of the operations
declared in this package and the corresponding task object no longer exists,
the execution of the program is erroneous.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>Accesses to task attributes via a value of type Attribute_Handle are
erroneous if executed concurrently with each other or with calls of
any of the operations declared in package Task_Attributes.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 16: [<A HREF="defect1.html#8652/0071">8652/0071</A>]
</FONT></B></P>
<UL><P>The implementation shall perform each of the above operations for a
given attribute of a given task atomically with respect to any other of the
above operations for the same attribute of the same task.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>For a given attribute of a given task, the implementation shall perform the
operations declared in this package atomically with respect to any of these
operations of the same attribute of the same task.
The granularity of any locking mechanism necessary to achieve such
atomicity is implementation defined.
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex D: Real-Time Systems</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">D.1 Task Priorities</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 21: [<A HREF="defect1.html#8652/0072">8652/0072</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
During activation, a task being activated inherits the active
priority of the its activator (see 9.2).</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
During activation, a task being activated inherits the active
priority that its activator (see 9.2) had at the time the
activation was initiated.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 22: [<A HREF="defect1.html#8652/0072">8652/0072</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
During rendezvous, the task accepting the entry call inherits the
active priority of the caller (see 9.5.3).</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
During rendezvous, the task accepting the entry call inherits the
priority of the entry call (see 9.5.3 and D.4).</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">D.3 Priority Ceiling Locking</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">In paragraph 6 replace: [<A HREF="defect1.html#8652/0073">8652/0073</A>]
</FONT></B></P>
<UL><P>If no Locking_Policy pragma appears in any of the program units comprising
a partition, the locking policy for that partition, as well as the effect
of specifying either a Priority or Interrupt_Priority pragma for a protected
object, are implementation defined.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If no Locking_Policy pragma applies to any of the program units comprising
a partition, the locking policy for that partition, as well as the effect
of specifying either a Priority or Interrupt_Priority pragma for a protected
object, are implementation defined.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">D.4 Entry Queuing Policies</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 1: [<A HREF="defect1.html#8652/0074">8652/0074</A>]
</FONT></B></P>
<UL><P>This clause specifies a mechanism for a user to choose an entry <I>queuing
policy</I>. It also defines one such policy. Other policies are implementation
defined.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>This clause specifies a mechanism for a user to choose an entry <I>queuing
policy</I>. It also defines two such policies. Other policies are implementation
defined.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0075">8652/0075</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
After a call is first queued, changes to the active priority of a
task do not affect the priority of the call, unless the base
priority of the task is set.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
After a call is first queued, changes to the active priority of a task
do not affect the priority of the call, unless the base priority of the task is
set while the task is blocked on an entry call.</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">D.7 Tasking Restrictions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0042">8652/0042</A>]
</FONT></B></P>
<P><UL><DL>
<DT>No_Nested_Finalization<DD>Objects with controlled parts
and access types that designate such objects shall be declared only
at library level.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>No_Nested_Finalization<DD>Objects with controlled, protected,
or task parts, and access types that designate such objects, shall be
declared only at library level.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 15: [<A HREF="defect1.html#8652/0076">8652/0076</A>]
</FONT></B></P>
<UL><P>If the following restrictions are violated, the behavior is
implementation defined. If an implementation chooses to detect such a
violation, Storage_Error should be raised.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 17: [<A HREF="defect1.html#8652/0076">8652/0076</A>]
</FONT></B></P>
<P><UL><DL>
<DT>Max_Storage_At_Blocking<DD>
Specifies the maximum portion (in storage elements) of a
task's Storage_Size that can be retained by a blocked task.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>Max_Storage_At_Blocking<DD>
Specifies the maximum portion (in storage elements) of a task's Storage_Size
that can be retained by a blocked task. If an implementation chooses to detect
a violation of this restriction, Storage_Error should be raised; otherwise,
the behavior is implementation defined.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0076">8652/0076</A>]
</FONT></B></P>
<P><UL><DL>
<DT>Max_Asynchronous_Select_Nesting<DD>
Specifies the maximum dynamic nesting level of <FONT FACE="Arial, Helvetica">asynchronous_select</FONT>s.
A value of zero prevents the use of any <FONT FACE="Arial, Helvetica">asynchronous_select</FONT>.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>Max_Asynchronous_Select_Nesting<DD>
Specifies the maximum dynamic nesting of <FONT FACE="Arial, Helvetica">asynchronous_select</FONT>s. A value of
zero prevents the use of any <FONT FACE="Arial, Helvetica">asynchronous_select</FONT> and, if a program
contains an <FONT FACE="Arial, Helvetica">asynchronous_select</FONT>, it is illegal. If an implementation
chooses to detect a violation of this restriction for values other than zero,
Storage_Error should be raised; otherwise, the behavior is implementation
defined.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 19: [<A HREF="defect1.html#8652/0076">8652/0076</A>]
</FONT></B></P>
<P><UL><DL>
<DT>Max_Tasks<DD>
Specifies the maximum number of task creations that may be executed over the
lifetime of a partition, not counting the creation of the environment task.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>Max_Tasks<DD>
Specifies the maximum number of task creations that may be executed over the
lifetime of a partition, not counting the creation of the environment task. A
value of zero prevents any task creation and, if a program contains a task
creation, it is illegal. If an implementation chooses to detect a violation
of this restriction for values other than zero, Storage_Error should be raised;
otherwise, the behavior is implementation defined.</DL></UL></P>
<H3><FONT FACE="Arial, Helvetica">D.11 Asynchronous Task Control</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0077">8652/0077</A>]
</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
If a task becomes held while waiting in a <FONT FACE="Arial, Helvetica">selective_accept</FONT>,
and a entry call is issued to one of the open entries, the
corresponding accept body executes. When the rendezvous
completes, the active priority of the accepting task is
lowered to the held priority (unless it is still inheriting
from other sources), and the task does not execute until another Continue.</LI></UL></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><UL><LI TYPE=DISC>
If a task becomes held while waiting in a <FONT FACE="Arial, Helvetica">selective_accept</FONT>,
and an entry call is issued to one of the open entries, the
corresponding <FONT FACE="Arial, Helvetica">accept_alternative</FONT> executes. When the rendezvous
completes, the active priority of the accepting task is
lowered to the held priority (unless it is still inheriting
from other sources), and the task does not execute until another Continue.</LI></UL></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex E: Distributed Systems</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">E.2 Categorization of Library Units</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 4: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><P>A library package or generic library package is called a <I>shared passive</I>
library unit if a Shared_Passive pragma applies to it. A library package or
generic library package is called a <I>remote types</I> library unit if a
Remote_Types pragma applies to it. A library package or generic library package
is called a <I>remote call interface</I> if a Remote_Call_Interface pragma applies
to it. A <I>normal library unit</I> is one to which no categorization pragma
applies.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A library package or generic library package is called a <I>shared passive</I>
library unit if a Shared_Passive pragma applies to it. A library package or
generic library package is called a <I>remote types</I> library unit if a
Remote_Types pragma applies to it. A library unit is called a <I>remote call
interface</I> if a Remote_Call_Interface pragma applies to
it. A <I>normal library unit</I> is one to which no categorization pragma
applies.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Delete paragraph 13: [<A HREF="defect1.html#8652/0079">8652/0079</A>]
</FONT></B></P>
<UL><P>For a given library-level type declared in a preelaborated library unit
or in the declaration of a remote types or remote call interface library
unit, the implementation shall choose the same representation for the type
upon each elaboration of the type's declaration for different partitions of
the same program.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">E.2.1 Shared Passive Library Units</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0080">8652/0080</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain a library-level declaration of an access
type that designates a class-wide type, task type, or protected
type with <FONT FACE="Arial, Helvetica">entry_declaration</FONT>s; if the shared passive library unit
is generic, it shall not contain a declaration for such an access
type unless the declaration is nested within a body other than a
<FONT FACE="Arial, Helvetica">package_body</FONT>.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain a library-level declaration of an access
type that designates a class-wide type, task type, or protected
type with <FONT FACE="Arial, Helvetica">entry_declaration</FONT>s.</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">E.2.2 Remote Types Library Units</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0081">8652/0081</A>; <A HREF="defect1.html#8652/0082">8652/0082</A>]
</FONT></B></P>
<UL><P>An access type declared in the visible part of a remote types or remote
call interface library unit is called a <I>remote access type</I>. Such a type
shall be either an access-to-subprogram type or a general access type that
designates a class-wide limited private type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An access type declared in the visible part of a remote types or remote
call interface library unit is called a <I>remote access type</I>. Such a type
shall be:
</P></UL>
<UL><UL><LI TYPE=DISC>
an access-to-subprogram type, or</LI></UL></UL>
<UL><UL><LI TYPE=DISC>
a general access type that designates a class-wide limited private type
or a class-wide private type extension all of whose ancestors are either private
type extensions or limited private types.</LI></UL></UL>
<UL><P>A type that is derived from a remote access type is also a remote access type.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 14: [<A HREF="defect1.html#8652/0083">8652/0083</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
The primitive subprograms of the corresponding specific limited private
type shall only have access parameters if they are controlling formal
parameters; the types of all the non-controlling formal parameters shall
have Read and Write attributes.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
The primitive subprograms of the corresponding specific limited private
type shall only have access parameters if they are controlling formal
parameters; each non-controlling formal parameter shall have either a
nonlimited type or a type with Read and Write attributes specified via an
<FONT FACE="Arial, Helvetica">attribute_definition_clause</FONT>;</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">E.2.3 Remote Call Interface Library Units</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 7: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><P>A <I>remote call interface (RCI)</I> is a library unit to which the pragma
Remote_Call_Interface applies. A subprogram declared in the visible part of
such a library unit is called a <I>remote subprogram</I>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>A <I>remote call interface (RCI)</I> is a library unit to which the pragma
Remote_Call_Interface applies. A subprogram declared in the visible part of
such a library unit, or declared by such a library unit, is called a
<I>remote subprogram</I>.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><P>In addition, the following restrictions apply to the visible part of an
RCI library unit:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>In addition, the following restrictions apply to an RCI library unit:
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 10: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain the declaration of a variable;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
its visible part shall not contain the declaration of a variable;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 11: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain the declaration of a limited type;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
its visible part shall not contain the declaration of a limited type;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain a nested <FONT FACE="Arial, Helvetica">generic_declaration</FONT>;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
its visible part shall not contain a nested <FONT FACE="Arial, Helvetica">generic_declaration</FONT>;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 13: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain the declaration of a subprogram to which a
pragma Inline applies;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not be, nor shall its visible part contain, the declaration
of a subprogram to which a pragma Inline applies;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 14: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not contain a subprogram (or access-to-subprogram)
declaration whose profile has an access parameter, or a formal
parameter of a limited type unless that limited type has
user-specified Read and Write attributes;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
it shall not be, nor shall its visible part contain, a
subprogram (or access-to-subprogram) declaration whose profile
has an access parameter, or a formal parameter of a limited type
unless that limited type has user-specified Read and Write attributes;</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 19: [<A HREF="defect1.html#8652/0078">8652/0078</A>]
</FONT></B></P>
<UL><P>If a pragma All_Calls_Remote applies to a given RCI library package,
then the implementation shall route any call to a subprogram of the RCI
package from outside the declarative region of the package through the
Partition Communication Subsystem (PCS); see E.5. Calls to such subprograms
from within the declarative region of the package are defined to be local and
shall not go through the PCS.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>If a pragma All_Calls_Remote applies to a given RCI library unit,
then the implementation shall route any call to a subprogram
of the RCI unit from outside the declarative region of the unit
through the Partition Communication Subsystem (PCS); see E.5.
Calls to such subprograms from within the declarative region of
the unit are defined to be local and shall not go through the PCS.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">E.3 Consistency of a Distributed System</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0084">8652/0084</A>]
</FONT></B></P>
<UL><P>The <I>version</I> of a compilation unit changes whenever the version changes
for any compilation unit on which it depends semantically. The version also
changes whenever the compilation unit itself changes in a semantically
significant way. It is implementation defined whether there are other events
(such as recompilation) that result in the version of a compilation unit
changing.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The <I>version</I> of a compilation unit changes whenever the compilation unit
changes in a semantically significant way. This International Standard
does not define the exact meaning of "semantically significant". It is
also unspecified whether there are other events (such as recompilation)
that result in the version of a compilation unit changing.
</P></UL>
<UL><P>If P is not a library unit, and P has no completion, then P'Body_Version
returns the Body_Version of the innermost program unit enclosing the
declaration of P. If P is a library unit, and P has no completion,
then P'Body_Version returns a value that is different from Body_Version
of any version of P that has a completion.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">E.4 Remote Subprogram Calls</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 18: [<A HREF="defect1.html#8652/0085">8652/0085</A>]
</FONT></B></P>
<UL><P>In a remote subprogram call with a formal parameter of a class-wide
type, a check is made that the tag of the actual parameter identifies a
tagged type declared in a declared-pure or shared passive library unit, or in
the visible part of a remote types or remote call interface library unit.
Program_Error is raised if this check fails.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>In a remote subprogram call with a formal parameter of a class-wide
type, a check is made that the tag of the actual parameter identifies a
tagged type declared in a declared-pure or shared passive library unit, or in
the visible part of a remote types or remote call interface library unit.
Program_Error is raised if this check fails. In a remote function call which
returns a class-wide type, the same check is made on the function result.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 20: [<A HREF="defect1.html#8652/0086">8652/0086</A>]
</FONT></B></P>
<UL><P>The implementation of remote subprogram calls shall conform to the PCS
interface as defined by the specification of the language-defined package
System.RPC (see E.5). The calling stub shall use the Do_RPC procedure unless
the remote procedure call is asynchronous in which case Do_APC shall be used.
On the receiving side, the corresponding receiving stub shall be invoked by
the RPC-receiver.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraph:</FONT></B></P>
<UL><P>With respect to shared variables in shared passive library units, the
execution of the corresponding subprogram body of a synchronous remote
procedure call is considered to be part of the execution of the calling task.
The execution of the corresponding subprogram body of an asynchronous remote
procedure call proceeds in parallel with the calling task and does not signal
the next action of the calling task (see 9.10).
</P></UL>
<H3><FONT FACE="Arial, Helvetica">E.5 Partition Communication Subsystem</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Insert after paragraph 24: [<A HREF="defect1.html#8652/0087">8652/0087</A>]
</FONT></B></P>
<UL><P>The implementation of the RPC-receiver shall be reentrant, thereby
allowing concurrent calls on it from the PCS to service concurrent remote
subprogram calls into the partition.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">the new paragraphs:</FONT></B></P>
<UL><P>An implementation shall not restrict the replacement of the body of System.RPC.
An implementation shall not restrict children of System.RPC. The related
implementation permissions in the introduction to Annex A do not apply.
</P></UL>
<UL><P>If the implementation of System.RPC is provided by the user, an implementation
shall support remote subprogram calls as specified.
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex F: Information Systems</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">F.3.1 Picture String Formation</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 43: [<A HREF="defect1.html#8652/0088">8652/0088</A>]
</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If a picture String has '+' or '-' as <FONT FACE="Arial, Helvetica">fixed_LHS_sign</FONT>, in a
<FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>, or in an <FONT FACE="Arial, Helvetica">all_sign_number</FONT>, then it has no
<FONT FACE="Arial, Helvetica">RHS_sign</FONT>.</LI></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><LI TYPE=DISC>
If a picture String has '+' or '-' as <FONT FACE="Arial, Helvetica">fixed_LHS_sign</FONT>, in a
<FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>, or in an <FONT FACE="Arial, Helvetica">all_sign_number</FONT>, then it has no
<FONT FACE="Arial, Helvetica">RHS_sign</FONT> or '>' character.</LI></UL></UL>
<H3><FONT FACE="Arial, Helvetica">F.3.2 Edited Output Generation</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 74: [<A HREF="defect1.html#8652/0089">8652/0089</A>]
</FONT></B></P>
<UL><UL><PRE><TT>123456.78 Picture: "-$$$**_***_**9.99"
Result: "bbb$***123,456.78"
"bbbFF***123.456,78" (currency = "FF",
separator = '.',
radix mark = ',')</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT>123456.78 Picture: "-$**_***_**9.99"
Result: "b$***123,456.78"
"bFF***123.456,78" (currency = "FF",
separator = '.',
radix mark = ',')</TT></PRE></UL></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex G: Numerics</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">G.1.1 Complex Types</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 2: [<A HREF="defect1.html#8652/0090">8652/0090</A>]
</FONT></B></P>
<UL><UL><PRE><TT><B>generic</B>
<B>type</B> Real <B>is digits</B> <>;
<B>package</B> Ada.Numerics.Generic_Complex_Types <B>is</B>
pragma Pure(Generic_Complex_Types);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><UL><PRE><TT><B>generic</B>
<B>type</B> Real <B>is digits</B> <>;
<B>package</B> Ada.Numerics.Generic_Complex_Types <B>is</B>
<B>pragma</B> Pure(Generic_Complex_Types);</TT></PRE></UL></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 25: [<A HREF="defect1.html#8652/0020">8652/0020</A>]
</FONT></B></P>
<UL><P>The library package Numerics.Complex_Types defines the same types, constants,
and subprograms as Numerics.Generic_Complex_Types, except that the predefined
type Float is systematically substituted for Real'Base throughout. Nongeneric
equivalents of Numerics.Generic_Complex_Types for each of the other predefined
floating point types are defined similarly, with the names
Numerics.Short_Complex_Types, Numerics.Long_Complex_Types, etc.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The library package Numerics.Complex_Types is declared pure and defines the
same types, constants, and subprograms as Numerics.Generic_Complex_Types,
except that the predefined type Float is systematically substituted for
Real'Base throughout.
Nongeneric equivalents of Numerics.Generic_Complex_Types for each of the other
predefined floating point types are defined similarly, with the names
Numerics.Short_Complex_Types, Numerics.Long_Complex_Types, etc.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 55: [<A HREF="defect1.html#8652/0091">8652/0091</A>]
</FONT></B></P>
<UL><P>Implementations may obtain the result of exponentiation of a complex or
pure-imaginary operand by repeated complex multiplication, with arbitrary
association of the factors and with a possible final complex reciprocation
(when the exponent is negative). Implementations are also permitted to
obtain the result of exponentiation of a complex operand, but not of a
pure-imaginary operand, by converting the left operand to a polar
representation; exponentiating the modulus by the given exponent; multiplying
the argument by the given exponent, when the exponent is positive, or
dividing the argument by the absolute value of the given exponent, when the
exponent is negative; and reconverting to a cartesian representation.
Because of this implementation freedom, no accuracy requirement is imposed on
complex exponentiation (except for the prescribed results given above, which
apply regardless of the implementation method chosen).
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Implementations may obtain the result of exponentiation of a complex or
pure-imaginary operand by repeated complex multiplication, with arbitrary
association of the factors and with a possible final complex reciprocation
(when the exponent is negative). Implementations are also permitted to
obtain the result of exponentiation of a complex operand, but not of a
pure-imaginary operand, by converting the left operand to a polar
representation, exponentiating the modulus by the given exponent,
multiplying the argument by the given exponent, and reconverting to a
cartesian representation. Because of this implementation freedom, no
accuracy requirement is imposed on complex exponentiation (except for the
prescribed results given above, which apply regardless of the
implementation method chosen).
</P></UL>
<H3><FONT FACE="Arial, Helvetica">G.1.2 Complex Elementary Functions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 9: [<A HREF="defect1.html#8652/0020">8652/0020</A>]
</FONT></B></P>
<UL><P>The library package Numerics.Complex_Elementary_Functions defines the same
subprograms as Numerics.Generic_Complex_Elementary_Functions, except that the
predefined type Float is systematically substituted for Real'Base, and the
Complex and Imaginary types exported by Numerics.Complex_Types are
systematically substituted for Complex and Imaginary, throughout. Nongeneric
equivalents of Numerics.Generic_Complex_Elementary_Functions corresponding to
each of the other predefined floating point types are defined similarly, with
the names Numerics.Short_Complex_Elementary_Functions,
Numerics.Long_Complex_Elementary_Functions, etc.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The library package Numerics.Complex_Elementary_Functions is declared pure and
defines the same subprograms as Numerics.Generic_Complex_Elementary_Functions,
except that the predefined type Float is systematically substituted for
Real'Base, and the Complex and Imaginary types exported by
Numerics.Complex_Types are systematically substituted for Complex and Imaginary,
throughout. Nongeneric equivalents of
Numerics.Generic_Complex_Elementary_Functions corresponding to each of the other
predefined floating point types are defined similarly, with the names
Numerics.Short_Complex_Elementary_Functions,
Numerics.Long_Complex_Elementary_Functions, etc.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">G.1.3 Complex Input-Output</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 12: [<A HREF="defect1.html#8652/0092">8652/0092</A>]
</FONT></B></P>
<UL><P>The input sequence is a pair of optionally signed real literals representing
the real and imaginary components of a complex value; optionally, the pair of
components may be separated by a comma and/or surrounded by a pair of
parentheses. Blanks are freely allowed before each of the components and before
the parentheses and comma, if either is used. If the value of the parameter
Width is zero, then
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>The input sequence is a pair of optionally signed real values representing the
real and imaginary components of a complex value. These components have the
format defined for the corresponding Get procedure of an instance of
Text_IO.Float_IO (see A.10.9) for the base subtype of Complex_Types.Real.
The pair of components may be separated by a comma or
surrounded by a pair of parentheses or both. Blanks are freely allowed before
each of the components and before the parentheses and comma, if either is used. If the
value of the parameter Width is zero, then
</P></UL>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex H: Safety and Security</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">H.3.2 Pragma Inspection_Point</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 5: [<A HREF="defect1.html#8652/0093">8652/0093</A>]
</FONT></B></P>
<UL><P>An <I>inspection point</I> is a point in the object code corresponding to the
occurrence of a pragma Inspection_Point in the compilation unit. An object
is <I>inspectable</I> at an inspection point if the corresponding pragma
Inspection_Point either has an argument denoting that object, or has no
arguments.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>An <I>inspection point</I> is a point in the object code corresponding to the
occurrence of a pragma Inspection_Point in the compilation unit.
An object is <I>inspectable</I> at an inspection point if the corresponding
pragma Inspection_Point either has an argument denoting that object, or
has no arguments and the object is visible at the inspection point.
</P></UL>
<H3><FONT FACE="Arial, Helvetica">H.4 Safety and Security Restrictions</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 8: [<A HREF="defect1.html#8652/0042">8652/0042</A>]
</FONT></B></P>
<P><UL><DL>
<DT>No_Local_Allocators<DD><FONT FACE="Arial, Helvetica">Allocator</FONT>s are prohibited in subprograms,
generic subprograms, tasks, and entry bodies; instantiations of generic
packages are also prohibited in these contexts.</DL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><DL>
<DT>No_Local_Allocators<DD><FONT FACE="Arial, Helvetica">Allocator</FONT>s are prohibited in subprograms,
generic subprograms, tasks, and entry bodies.</DL></UL></P>
<P><BR><BR></P>
<HR>
<H2><FONT FACE="Arial, Helvetica">Annex J: Obsolescent Features</FONT></H2>
<P></P>
<H3><FONT FACE="Arial, Helvetica">J.7.1 Interrupt Entries</FONT></H3>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 16: [<A HREF="defect1.html#8652/0077">8652/0077</A>]
</FONT></B></P>
<UL><P>Interrupt entry calls may be implemented by having the hardware execute
directly the appropriate accept body. Alternatively, the implementation is
allowed to provide an internal interrupt handler to simulate the effect of a
normal task calling the entry.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<UL><P>Interrupt entry calls may be implemented by having the hardware directly
execute the appropriate <FONT FACE="Arial, Helvetica">accept_statement</FONT>. Alternatively, the
implementation is allowed to provide an internal interrupt handler to
simulate the effect of a normal task calling the entry.
</P></UL>
<P><B><FONT FACE="Arial, Helvetica">Replace paragraph 20: [<A HREF="defect1.html#8652/0077">8652/0077</A>]
</FONT></B></P>
<P><UL><UL>
NOTES<BR>
1 Queued interrupts correspond to ordinary entry calls. Interrupts
that are lost if not immediately processed correspond to conditional
entry calls. It is a consequence of the priority rules that an accept
body executed in response to an interrupt can be executed with the
active priority at which the hardware generates the interrupt, taking
precedence over lower priority tasks, without a scheduling action.</UL></UL></P>
<P><B><FONT FACE="Arial, Helvetica">by:</FONT></B></P>
<P><UL><UL>
NOTES<BR>
1 Queued interrupts correspond to ordinary entry calls. Interrupts
that are lost if not immediately processed correspond to conditional
entry calls. It is a consequence of the priority rules that an
<FONT FACE="Arial, Helvetica">accept_statement</FONT> executed in response to an interrupt can be executed
with the active priority at which the hardware generates the interrupt, taking
precedence over lower priority tasks, without a scheduling action.</UL></UL></P>
<P></P>
</BODY>
</HTML>
|