aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
blob: 222b9cd9083f8644caf42db6a83e905f8fb03455 (plain)
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
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/Makefile.in (tmake_file): Remove all references.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc: Include function.h.
	(gnat_to_gnu_param): Minor comment tweaks.
	(gnat_to_gnu_subprog_type): Take into account the default for the
	computation of the return mechanism.  Give a warning if a by-copy
	specified mechanism cannot be honored.

2024-06-14  Yannick Moy  <moy@adacore.com>

	* gcc-interface/trans.cc (elaborate_all_entities_for_package)
	(process_freeze_entity): Skip entities of kind E_Subprogram_Body.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/109817
	* gcc-interface/trans.cc (maybe_make_gnu_thunk): Create an alias
	instead of a null thunk.

2024-06-14  Marc Poulhiès  <poulhies@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Typo fix.
	(gnat_to_gnu_component_type): Indent fix.
	* gcc-interface/gigi.h (build_call_alloc_dealloc): Typo fix.
	* gcc-interface/utils.cc (make_dummy_type): Typo fix.
	* gcc-interface/utils2.cc (gnat_protect_expr): Indent fix.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* aspects.ads (Aspect_Id): Alphabetize, remove the GNAT tag from
	Default_Initial_Condition and Object_Size, move No_Controlled_Parts
	and No_Task_Parts to boolean subclass.
	(Nonoverridable_Aspect_Id): Add missing Ada 2022 aspects.
	(Implementation_Defined_Aspect): Add all missing aspects, remove
	Max_Entry_Queue_Length and Object_Size
	(Aspect_Argument): Remove specific entries for No_Controlled_Parts
	and No_Task_Parts, list boolean aspects last.
	(Is_Representation_Aspect ): Move boolean aspects last.
	(Aspect_Names): Alphabetize.
	* sem_ch13.adb (Analyze_Aspect_Disable_Controlled): Adjust.
	(Analyze_Aspect_Specifications): Move around processing for
	No_Controlled_Parts and No_Task_Parts.
	(Check_Aspect_At_Freeze_Point): Remove specific entries for
	No_Controlled_Parts and No_Task_Parts

2024-06-14  Steve Baird  <baird@adacore.com>

	* exp_attr.adb
	(Expand_Loop_Entry_Attribute):
	Ensure that Etype of the saved expression is set correctly.

2024-06-14  Jerome Guitton  <guitton@adacore.com>

	* sysdep.c (S_dosFsLib_FILE_NOT_FOUND, S_nfsLib_NFSERR_NOENT):
	New macros, falback to ENOENT when not already defined.
	(__gnat_is_file_not_found_error): Use these new macros to remove
	tests against VxWorks flavors.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* snames.ads-tmpl (Name_Present): Move to Repinfo section.

2024-06-14  Justin Squirek  <squirek@adacore.com>

	* doc/gnat_rm/gnat_language_extensions.rst: Add documentation for
	mutably tagged type feature.
	* aspects.ads: Add registration for 'Size'Class.
	* einfo.ads: Add documentation for new components
	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
	* exp_aggr.adb (Gen_Assign): Assume associated mutably tagged type
	when class-wide equivalent type is encountered.
	(Contains_Mutably_Tagged_Type): New subprogram.
	(Convert_To_Positional): Assume associated mutably tagged type
	when class-wide equivalent type is encountered.
	(Is_Static_Element): Assume associated mutably tagged type when
	class-wide equivalent type is encountered.
	(Expand_Array_Aggregate): Assume associated mutably tagged type
	when class-wide equivalent type is encountered.
	(Expand_Record_Aggregate): Force mutably tagged records to be
	expanded into assignments.
	* exp_ch3.adb (Build_Array_Init_Proc): Assume associated mutably
	tagged type when class-wide equivalent type is encountered.
	(Simple_Initialization_OK): Disallow simple initialization for
	class-wide equivalent types.
	(Build_Init_Statements): Assume associated mutably tagged type
	when class-wide equivalent type is encountered.
	(Expand_Freeze_Array_Type): Ignore building of record init procs
	for mutably tagged types.
	(Expand_N_Full_Type_Declaration): Replace mutably tagged type
	declarations with their associated class-wide equivalent types.
	(Default_Initialize_Object): Add special handling for mutably
	tagged types.
	* exp_ch4.adb (Expand_N_Allocator): Add initialization for mutably
	tagged types.
	(Expand_Record_Equality): Generate mutably tagged unchecked
	conversions.
	* exp_ch5.adb (Expand_N_Assignment_Statement): Generate a special
	assignment case for class-wide equivalent types which does tag
	assignments and ignores certain checks.
	* exp_ch6.adb (Expand_Call_Helper): Propagate constrained extra
	formal actuals for mutably tagged types.
	* exp_ch7.adb (Make_Init_Call): Handle mutably tagged type
	initialization.
	* exp_util.adb (Make_CW_Equivalent_Type): Modify to handle mutably
	tagged objects which contain no initialization expression.
	(Make_Subtype_From_Expr): Modify call to Make_CW_Equivalent_Type.
	* exp_util.ads (Make_CW_Equivalent_Type): Move declaration from
	body to spec.
	* freeze.adb (Size_Known): No longer return false automatically
	when a class-wide type is encountered.
	(Freeze_Entity): Ignore error messages about size not being known
	for mutably tagged types.
	* gen_il-fields.ads: Register new fields
	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type.
	* gen_il-gen-gen_entities.adb: Register new fields
	Class_Wide_Equivalent_Type and Is_Mutably_Tagged_Type for type
	entities.
	* mutably_tagged.adb, mutably_tagged.ads
	(Corresponding_Mutably_Tagged_Type): New subprogram.
	(Depends_On_Mutably_Tagged_Ext_Comp): New subprogram.
	(Get_Corresponding_Mutably_Tagged_Type_If_Present): New
	subprogram.
	(Get_Corresponding_Tagged_Type_If_Present): New subprogram.
	(Is_Mutably_Tagged_Conversion): New subprogram.
	(Is_Mutably_Tagged_CW_Equivalent_Type): New subprogram.
	(Make_Mutably_Tagged_Conversion): New subprogram.
	(Make_CW_Size_Compile_Check): New subprogram.
	(Make_Mutably_Tagged_CW_Check): New subprogram.
	* sem_aggr.adb (Resolve_Array_Aggregate): Skip tag checks for
	class-wide equivalent types.
	(Resolve_Aggr_Expr): Assume associated mutably tagged type when
	class-wide equivalent type is encountered.
	* sem_attr.adb (Analyze_Attribute): Allow 'Tag on mutably tagged
	types.
	(Resolve_Attribute): Detect errors for dependence of mutably
	tagged extension type component.
	* sem_ch12.adb (Instantiate_Object): Detect errors for dependence
	of mutably tagged extension type component.
	* sem_ch13.adb (Analyze_One_Aspect): Propagate 'Size'Class to
	class-wide type.
	(Analyze_Attribute_Definition_Clause): Add handling of 'Size'Class
	by generating class-wide equivalent types and checking for illegal
	uses.
	* sem_ch2.adb (Analyze_Identifier): Generate unchecked conversion
	for class-wide equivalent types.
	* sem_ch3.adb (Analyze_Component_Declaration): Avoid unconstrained
	errors on mutably tagged types.
	(Analyze_Object_Declaration): Rewrite declarations of mutably
	tagged types to use class-wide equivalent types.
	(Array_Type_Declaration): Modify arrays of mutably tagged types to
	use their corresponding class-wide equivalent types.
	(Derived_Type_Declaration): Add various checks for mutably tagged
	derived types.
	* sem_ch4.adb (Analyze_Allocator): Replace reference to mutably
	tagged type with cooresponding tagged type.
	(Process_Indexed_Component): Generate unchecked conversion for
	class-wide equivalent type.
	(Analyze_One_Call): Generate unchecked conversion for class-wide
	equivalent types.
	(Analyze_Selected_Component): Assume reference to class-wide
	equivalent type is associated mutably tagged type.
	(Analyze_Type_Conversion): Generate unchecked conversion for
	class-wide equivalent type.
	* sem_ch5.adb (Analyze_Assignment): Assume associated mutably
	tagged type when class-wide equivalent type is encountered.
	(Analyze_Iterator_Specification): Detect errors for dependence of
	mutably tagged extension type component.
	* sem_ch6.adb (Create_Extra_Formals): Add code to generate extra
	formal for mutably tagged types to signal if they are constrained.
	* sem_ch8.adb (Analyze_Object_Renaming): Detect error on renaming
	of mutably tagged extension type component.
	(Analyze_Renaming_Primitive_Operation): Detect error on renaming
	of mutably tagged extension type component.
	* sem_res.adb (Resolve_Actuals): Allow class-wide arguments on
	class-wide equivalent types.
	(Valid_Conversion): Assume associated mutably tagged type when
	class-wide equivalent type is encountered.
	* sem_util.adb (Is_Fully_Initialized_Type): Flag mutably tagged
	types as fully initialized.
	(Needs_Simple_Initalization): Flag class-wide equivalent types as
	needing initialization.
	* gnat_rm.texi: Regenerate.
	* gcc-interface/Make-lang.in: Add entry for mutably_tagged.o.

2024-06-14  Justin Squirek  <squirek@adacore.com>

	* accessibility.adb:
	(Accessibility_Level): Replace call Get_Full_View with call to
	Full_View since Get_Full_View only works with incomplete types.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* aspects.ads (Operational_Aspect): Alphabetize.
	* sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Fix description.
	* sem_ch13.adb (Analyze_Aspects_At_Freeze_Point) <Aggregate>: Give
	the error for array types here instead of...
	(Analyze_Aspect_Specifications) <Aggregate>: Adjust comment.
	(Check_Aspect_At_Freeze_Point) <Aggregate>: ...here.

2024-06-14  Javier Miranda  <miranda@adacore.com>

	* exp_aggr.adb (Must_Slide): Add missing support for
	multidimensional arrays.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_All): Call Check_Aspects_At_End_Of_Declarations
	to perform the visibility check for aspects.
	* sem_ch13.ads (Check_Aspects_At_End_Of_Declarations): Declare.
	(Check_Aspect_At_Freeze_Point): Move to...
	(Check_Aspect_At_End_Of_Declarations): Move to...
	* sem_ch13.adb 	(Check_Aspect_At_Freeze_Point): ...here.
	(Check_Aspect_At_End_Of_Declarations): ...here.
	(Analyze_Aspect_Specifications): Remove peculiar processing for
	Stable_Properties, Designated_Storage_Model, Storage_Model_Type
	and Aggregate.  Move that of Local_Restrictions around.  Reset
	Aitem at the beginning of the loop for each aspect.
	(Check_Aspects_At_End_Of_Declarations): New procedure.

2024-06-14  Justin Squirek  <squirek@adacore.com>

	* sem_attr.adb:
	(Analyze_Attribute): Add check for dereference.

2024-06-14  Eric Botcazou  <ebotcazou@adacore.com>

	* snames.ads-tmpl (Name_Storage_Model): Delete.

2024-06-14  Alexandre Oliva  <oliva@gnu.org>

	Revert:
	2024-06-12  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
	as the debug type for packed fields.

2024-06-13  Steve Baird  <baird@adacore.com>

	* exp_util.adb
	(Insert_Actions): Code was relying on an incorrect assumption that an
	N_Itype_Reference cannot occur in declaration list or a statement
	list.  Fix the code to handle this case.

2024-06-13  Viljar Indus  <indus@adacore.com>

	* debug.adb: Remove mentions of -gnatdJ.
	* errout.adb: Remove printing subprogram names to JSON.
	* erroutc.adb: Remove printing subprogram names in messages.
	* erroutc.ads: Remove Node and Subprogram_Name_Ptr used for -gnatdJ.
	* errutil.adb: Remove Node used for -gnatdJ
	* gnat1drv.adb: Remove references of -gnatdJ and
	Include_Subprgram_In_Messages.
	* opt.ads: Remove Include_Subprgram_In_Messages
	* par-util.adb: Remove behavior related to
	Include_Subprgram_In_Messages.
	* sem_util.adb: Remove Subprogram_Name used for -gnatdJ

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Attach_Object_To_Master_Node): Fix formatting.
	(Build_Finalizer.Process_Object_Declaration): Synthesize a local
	Finalize_Address primitive if the object's subtype is an array
	that has a constrained first subtype and is not this first subtype.
	* exp_util.adb (Find_Last_Init): Get again to the base type in the
	indirect case.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst (Iterable):
	Delete entry.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-06-13  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Check_Ambiguous_Aggregate): Fix test.

2024-06-13  Javier Miranda  <miranda@adacore.com>

	* freeze.ads (Check_Condition_Entities): Complete documentation.
	* freeze.adb (Check_Inherited_Conditions): Extend its functionality to
	build two kind of wrappers: the existing LSP wrappers, and wrappers
	required to handle postconditions of interface primitives implemented
	by inherited primitives.
	(Build_Inherited_Condition_Pragmas): Rename formal.
	(Freeze_Record_Type): For derived tagged types, move call to
	Check_Inherited_Conditions to subprogram Freeze_Entity_Checks;
	done to improve the performance of Check_Inherited_Conditions since it
	can rely on the internal entities that link interface primitives with
	tagged type primitives that implement them.
	(Check_Interface_Primitives_Strub_Mode): New subprogram.
	* sem_ch13.adb (Freeze_Entity_Checks): Call Check_Inherited_Conditions.
	Call Check_Inherited_Conditions with derived interface types to check
	strub mode compatibility of their primitives.
	* sem_disp.adb (Check_Dispatching_Operation): Adjust assertion to accept
	wrappers of interface primitives that have classwide postconditions.
	* exp_disp.adb (Write_DT): Adding text to identify wrappers.

2024-06-13  Viljar Indus  <indus@adacore.com>

	* sem_res.adb (Resolve_Call): add warning insertion
	character into the info message.

2024-06-13  Steve Baird  <baird@adacore.com>

	* sem_util.adb
	(New_Copy_Tree.Visit_Entity): Delete code that prevented copying some entities.

2024-06-13  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Check_Fixed_Point_Actual): Minor rewording; it seems
	more proper to say "operator" rather than "operation".
	(Matching_Actual): Give an error for <> in positional notation.
	This is a syntax error. Disable this for now.
	(Analyze_Associations): Copy the use clause in all cases.
	The "mustn't recopy" comment seems wrong, because New_Copy_Tree
	preserves Slocs.
	* libgnat/a-ticoau.ads: Fix violation of new postion-box error.
	* libgnat/a-wtcoau.ads: Likewise.
	* libgnat/a-ztcoau.ads: Likewise.

2024-06-13  Viljar Indus  <indus@adacore.com>

	* par-labl.adb (Rewrite_As_Loop): Remove info message

2024-06-13  Viljar Indus  <indus@adacore.com>

	* par-ch7.adb: Remove warning characters from info message
	* par-endh.adb: Remove warning characters from info message
	* sem_res.adb: Remove warning characters from info message

2024-06-13  Viljar Indus  <indus@adacore.com>

	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): change the
	info message to a continuation message.

2024-06-13  Viljar Indus  <indus@adacore.com>

	* inline.adb (Cannot_Inline): Simplify string handling logic.

2024-06-13  Yannick Moy  <moy@adacore.com>

	* exp_ch5.adb (Expand_Iterator_Loop_Over_Container): Skip entities
	of kind E_Subprogram_Body.
	* repinfo.adb (List_Entities): Remove special case for subprogram
	bodies.
	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): List subprogram
	body entities in the enclosing scope.

2024-06-13  Javier Miranda  <miranda@adacore.com>

	* sem_ch4.adb (Traverse_Interfaces): Add missing support
	for climbing to parents of interface types.

2024-06-13  Steve Baird  <baird@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst:
	Update Super attribute documentation.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-06-13  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch7.adb (Build_Cleanup_Statements): Adapt to changes
	made to Build_Protected_Subprogram_Call_Cleanup.
	* exp_ch9.adb (Make_Unlock_Statement, Wrap_Unprotected_Call):
	New functions.
	(Build_Protected_Subprogram_Body): Fix resource management in
	generated code.
	(Build_Protected_Subprogram_Call_Cleanup): Make use of newly
	introduced Make_Unlock_Statement.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/114710
	* exp_util.adb (Find_Renamed_Object): Recurse for any renaming.

2024-06-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context):
	Iterate over encapsulating abstract states.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-imad32$(objext),
	s-imad64$(objext) and s-imagea$(objext).
	* exp_atag.ads (Build_Set_Size_Function): Replace Tag_Node parameter
	with Typ parameter.
	* exp_atag.adb: Add clauses for Sinfo.Utils.
	(Build_Set_Size_Function): Retrieve the TSD object statically.
	* exp_disp.adb: Add clauses for Ttypes.
	(Make_DT): Call Address_Image{32,64] instead of Address_Image.
	(Register_Primitive): Pass Tag_Typ to Build_Set_Size_Function.
	* rtsfind.ads (RTU_Id): Remove System_Address_Image and add
	System_Img_Address_{32;64}.
	(RE_Id): Remove entry for RE_Address_Image and add entries for
	RE_Address_Image{32,64}.
	* rtsfind.adb (System_Descendant): Adjust to above changes.
	* libgnat/a-tags.ads (Address_Array): Suppress initialization.
	* libgnat/s-addima.adb (System.Address_Image): Call the appropriate
	routine based on the address size.
	* libgnat/s-imad32.ads: New file.
	* libgnat/s-imad64.ads: Likewise.
	* libgnat/s-imagea.ads: Likewise.
	* libgnat/s-imagea.adb: Likewise.
	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS) [$(STAGE1)=False]: Add
	ada/libgnat/s-imad32.o and ada/libgnat/s-imad64.o.

2024-06-13  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline
	when constant with address clause is found.

2024-06-13  Ronan Desplanques  <desplanques@adacore.com>

	* gnatlink.adb (Gnatlink): Fix incorrect lower bound assumption.
	(Is_Prefix): New function.

2024-06-13  Steve Baird  <baird@adacore.com>

	* sem_ch7.adb
	(Requires_Completion_In_Body): Modify the Comes_From_Source test so that
	the implicit declaration of an inherited subprogram does not cause
	an incorrect result of True.

2024-06-13  Richard Kenner  <kenner@adacore.com>

	* exp_ch6.adb (Expand_Ctrl_Function_Call): Inline if -gnatn in
	CCG mode even if -O0.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/114710
	* exp_util.adb (Find_Renamed_Object): Recurse if the renamed object
	is itself a renaming.

2024-06-13  Javier Miranda  <miranda@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Enhance support for
	using 'Old with a prefix that references an overloaded
	function that has no parameters; add missing support
	for the use of 'Old within qualified expressions.
	* sem_util.ads (Preanalyze_And_Resolve_Without_Errors):
	New subprogram.
	* sem_util.adb (Preanalyze_And_Resolve_Without_Errors):
	New subprogram.

2024-06-13  Piotr Trojanek  <trojanek@adacore.com>

	* layout.adb (Layout_Type): Use high-level wrapper routine.
	* sem_ch13.adb (Inherit_Delayed_Rep_Aspects): Likewise.
	* sem_ch3.adb (Analyze_Object_Declaration): Likewise.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-tsmona__linux.adb (Get): Move down descriptive comment.
	* libgnat/s-tsmona__mingw.adb: Add with clause and use clause for
	System.Storage_Elements.
	(Get): Pass GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT in the call
	to GetModuleHandleEx and remove the subsequent call to FreeLibrary.
	Upon success, set Load_Addr to the base address of the module.
	* libgnat/s-win32.ads (GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS): Use
	shorter literal.
	(GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT): New constant.

2024-06-13  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/114710
	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Remove dead
	code dealing with renamings.
	* exp_util.ads (Is_Finalizable_Transient): Rename Rel_Node to N.
	* exp_util.adb (Is_Finalizable_Transient): Likewise.
	(Is_Aliased): Remove obsolete code dealing wih EWA nodes and only
	consider renamings present in N itself.
	(Requires_Cleanup_Actions): Remove dead code dealing with renamings.

2024-06-13  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb (Analyze_One_Aspect): Set the applicable policy
	of a type declaration when its aspect Dynamic_Predicate is
	analyzed.
	* sem_prag.adb (Handle_Dynamic_Predicate_Check): New subprogram
	that enables or ignores dynamic predicate checks depending on
	whether dynamic checks are enabled in the context where the
	associated type declaration is defined; used in the analysis
	of pragma check. In addition, for pragma Predicate, do not
	disable it when the aspect was internally build as part of
	processing a dynamic predicate aspect.

2024-06-12  Alexandre Oliva  <oliva@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_field): Use unpacked type
	as the debug type for packed fields.

2024-06-10  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_Nonbinary_Modular_Op): Create an explicit Mod
	for additive operations if No_Implicit_Conditionals is in effect.
	(Expand_Modular_Addition): Likewise.
	(Expand_Modular_Subtraction): Likewise.
	(Expand_Modular_Op): Always use an unsigned type obtained by calling
	Small_Integer_Type_For on the required size.

2024-06-10  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Might_Need_BIP_Task_Actuals): Add support
	for access-to-subprogram parameter types.
	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call):
	Add dummy BIP parameters to access-to-subprogram types
	that may reference a function that has BIP parameters.

2024-06-10  Gary Dismukes  <dismukes@adacore.com>

	* sem_prag.adb (Set_Convention_From_Pragma): If the specified convention on
	a record type is not C_Pass_By_Copy, then force the C_Pass_By_Copy flag to
	False, to ensure that it's overridden.

2024-06-10  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Association): Change "not Present"
	to "No" in test of Add_Named_Subp.

2024-06-10  Steve Baird  <baird@adacore.com>

	* freeze.adb
	(Should_Freeze_Type.Is_Dispatching_Call_Or_Aggregate): Treat an extension
	aggregate or a delta aggregate like a regular aggregate.

2024-06-10  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Iterated_Association): In the case of
	N_Iterated_Element_Associations that have a key expression, issue
	an error if the aggregate type does not have an Add_Named
	operation, and include a reference to RM22 4.3.5(24) in the error
	message. In the case of an N_Component_Association with a
	Defining_Identifer where the "choice" is given by a function call,
	in the creation of the iterator_specification associate a copy of
	Choice as its Name, and remove the call to
	Analyze_Iterator_Specification, which was causing problems with
	the reanalysis of function calls originally given in prefixed form
	that were transformed into function calls in normal (infix) form.
	The iterator_specification will be analyzed later in any case, so
	that call should not be done here. Remove the with and use of
	Sem_Ch5.

2024-06-10  Justin Squirek  <squirek@adacore.com>

	* ali.adb (Get_Nat): Remove unnecessary parentheses.
	* exp_ch11.adb (Expand_Local_Exception_Handlers): Remove
	unnecessary parentheses.
	* freeze.adb (Freeze_Entity): Remove unnecessary parentheses.
	* lib-list.adb (List): Remove unnecessary parentheses.
	* par-ch5.adb (P_Condition): Add extra parentheses checks on
	condition operands.
	* sem_ch3.adb (Add_Interface_Tag_Components): Remove unnecessary
	parentheses.
	(Check_Delta_Expression): Remove unnecessary parenthesis.
	(Check_Digits_Expression): Remove unnecessary parentheses.
	* sem_ch12.adb (Validate_Array_Type_Instance): Remove unnecessary
	parentheses.

2024-06-10  Justin Squirek  <squirek@adacore.com>

	* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Add
	expansion of filter condition.
	(Expand_Formal_Container_Loop): Add expansion of filter condition.

2024-06-10  Justin Squirek  <squirek@adacore.com>

	* accessibility.adb (Accessibility_Level): Use Get_Full_View to
	avoid crashes when calculating scope.

2024-06-10  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Warn_On_Unreferenced_Entity): Add a condition to
	ignore warnings on unreferenced abstract subprogram.

2024-06-10  Justin Squirek  <squirek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Add check for interface parent
	types.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads, exp_attr.adb, exp_ch4.adb, exp_ch7.adb,
	lib-writ.adb, libgnat/a-stbuut.ads, sem_ch13.adb, sem_ch3.adb,
	sem_ch7.adb: Use "RM" in comments.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb
	(Immediate_Context_Implies_Is_Potentially_Unevaluated): Use
	collective subtypes in membership tests.
	(Is_Known_On_Entry): Require all alternatives in a case statement
	to return; this change could prevent a recently fixed glitch,
	where one of the alternatives relied on the return statement
	afterwards (also, the new code is shorter).
	* sem_util.ads (Is_Potentially_Unevaluated): Clarify that this
	routine applies to Ada 2012.

2024-06-10  Yannick Moy  <moy@adacore.com>

	* libgnat/a-chtgfo.adb (Generic_Read, Generic_Write): Remove.
	* libgnat/a-chtgfo.ads: Same. Remove dependency on Ada.Streams.

2024-06-10  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage of
	SetThreadAffinityMask.
	* libgnat/s-winext.ads (SetThreadAffinityMask): Fix binding
	signature.

2024-06-10  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-taprop__mingw.adb (Set_Task_Affinity): Fix usage
	of SetThreadIdealProcessor.

2024-06-10  Ronan Desplanques  <desplanques@adacore.com>

	* libgnat/s-os_lib.adb (Normalize_Pathname): Remove incorrect
	assert statement.
	(Missed_Drive_Letter): Rename into...
	(Drive_Letter_Omitted): This.

2024-06-10  Ronan Desplanques  <desplanques@adacore.com>

	* gnatlink.adb (Check_File_Name): Fix incorrect assumption.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference): Use constants
	declared at the beginning of subprogram; tune layout.
	* exp_ch3.adb (Predefined_Primitive_Bodies): Tune layout.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(No_Tagged_Streams): Move documentation.
	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst
	(No_Streams): Likewise.
	* exp_disp.adb (Make_DT): Extend comment.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Use fully qualified name
	without a NUL, so that it doesn't need to be skipped afterwards.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Stream_Operation_OK): Check restriction
	No_Default_Stream_Attributes before call to
	Type_Without_Stream_Operation.
	* sem_util.adb (Type_Without_Stream_Operation): Remove static
	condition from recursive routine

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Has_Single_Return_In_GNATprove_Mode): Remove.
	(Process_Formals): When rewriting an occurrence of a formal
	parameter, use location of the occurrence, not of the inlined
	call.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* debug.adb (d_k): Use first available debug switch.
	* gnat1drv.adb (Adjust_Global_Switches): If new debug switch is
	active then don't expand assertion expressions by default.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Install_Class_Preconditions_Check): Refactor
	common code for checking if precondition fails, since the
	difference is only in raising an exception or calling the
	Raise_Assert_Failure procedure.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Build_Dynamic_Check_Helper_Call): Remove unused
	iteration over formal parameters.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Make
	discriminants visible when analyzing aspect Interrupt_Priority.
	(Freeze_Entity_Checks): Likewise.
	(Resolve_Aspect_Expressions): Likewise for both aspects CPU and
	Interrupt_Priority.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Report_Extra_Clauses): Remove redundant check
	for empty list, because First works also for No_List.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_Dependency_Clause, Check_Output_States,
	Report_Extra_Clauses): Remove multiple checks for being inside
	an instance.
	(Analyze_Refined_Depends_In_Decl_Part): Add single check for
	being inside an instance.

2024-06-10  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Check_In_Out_States, Check_Input_States,
	Check_Output_States, Check_Proof_In_States,
	Check_Refined_Global_List, Report_Extra_Constituents,
	Report_Missing_Items): Remove multiple checks for being inside
	an instance.
	(Analyze_Refined_Global_In_Decl_Part): Add single check for
	being inside an instance.

2024-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use TYPE_PRECISION of
	long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.

2024-05-29  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/115270
	* Makefile.rtl (PowerPC/Linux): Use libgnat/s-atopri__32.ads for
	the 32-bit library.
	(SPARC/Linux): Likewise.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/115168
	* libgnarl/s-taprop__solaris.adb (Initialize): Fix pasto.
	* libgnat/s-oslock__solaris.ads (Owner_Int): Delete.
	(Owner_ID): Change the designated type to Integer.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (nonbinary_modular_operation): Rewrite.
	Do not create signed types for subtraction, do not create types with
	partial precision, call fold_convert instead of convert throughout.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity): Use the Is_Base_Type
	predicate and remove superfluous calls to Base_Type.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (gnat_protect_expr): Deal specifically
	with atomic loads. Document the relationship with gnat_save_expr.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: For a
	packed type implemented specially, temporarily save the XUA type as
	equivalent to the entity before processing the implementation type.
	For this implementation type, if its component type is the same as
	that of the original type, copy the alias set from the latter.
	<types>: Resort to universal aliasing for all interface types.
	* gcc-interface/trans.cc (Call_to_gnu): Add GNU_ACTUAL_TYPE local
	variable and rename existing one to GNU_UNPADDED_ACTUAL_TYPE.
	If the formal is passed by reference and the actual is a conversion,
	call aliasable_p to detect aliasing violations, issue a warning upon
	finding one and create the temporary in the target type.
	Add an assertion that no such violation has been missed above.
	(addressable_p): Revert latest changes.
	(aliasable_p): New predicate.
	* gcc-interface/utils2.cc (build_binary_op) <ARRAY_RANGE_REF>: When
	creating a new array type on the fly, preserve the alias set of the
	operation type.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (gnat_to_gnu) <N_Simple_Return_Statement>:
	In the return-by-invisible-reference case, remove conversions before
	looking for a dereference in the return values and building the test
	protecting against a useless copy operation.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Set
	TYPE_TYPELESS_STORAGE on the array types if Universal_Aliasing is
	set on the type or its component type.
	<E_Array_Subtype>: Likewise.
	For other aggregate types, set TYPE_TYPELESS_STORAGE in this case.
	(set_typeless_storage_on_aggregate_type): New function.
	(set_universal_aliasing_on_type): Likewise.
	* gcc-interface/trans.cc (Call_to_gnu): Add const to local variable.
	Adjust comment.  Pass GNAT_NAME in the call to addressable_p and add
	a bypass for atomic types in case it returns false.
	(addressable_p): Add GNAT_EXPR third parameter with default value
	and add a default value to the existing second parameter.
	<VIEW_CONVERT_EXPR:>: Return false if the expression comes from a
	function call and if the alias sets of source and target types are
	both distinct from zero and each other.

2024-05-21  Ronan Desplanques  <desplanques@adacore.com>

	* gcc-interface/utils2.cc (build_cond_expr): Also apply an
	indirection when the result type is variable-sized.

2024-05-21  Marc Poulhiès  <poulhies@adacore.com>

	* gcc-interface/decl.cc: Fix typo in comment.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (build_call_alloc_dealloc_proc): Add an
	assertion that this is not a deallocation of the return or secondary
	stack and remove subsequent unreachable code.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (build_cond_expr): Use the indirect path
	for all types containing a placeholder.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* gcc-interface/Make-lang.in (GNATBIND_OBJS): Remove unused
	dependencies.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: Give a
	warning for a statically allocated object whose size is constant,
	valid but too large.
	(allocatable_size_p): In the static case, return false for a size
	that is constant, valid but too large.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Variable>: For an
	array allocated with its bounds, make sure to have an array type
	to build the template.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.cc (access_attribute_p): New predicate.
	(lvalue_required_for_attribute_p): Return again 1 for Size and add
	the missing terminating call to gcc_unreachable.
	(gnat_to_gnu): Return the result unmodified for a reference to an
	unconstrained array only if it is the prefix of an access attribute.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.cc (relate_alias_sets): Restore previous code
	when the type uses structural equality.

2024-05-21  Steve Baird  <baird@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Make_Reference assumes that
	the referenced object satisfies the constraints of the designated
	subtype of the access type. Ensure that this assumption holds by
	introducing a qualified expression if needed (and then ensuring
	that checking associated with evaluation of the qualified
	expression is not suppressed).

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.ads (Nonoverridable_Aspect_Id): Fix layout.

2024-05-21  Ronan Desplanques  <desplanques@adacore.com>

	* frontend.adb (Frontend): Remove duplicate statement.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (Validate_Unchecked_Conversion): Restrict forcing the
	Can_Use_Internal_Rep flag to platforms that require unnesting.

2024-05-21  Viljar Indus  <indus@adacore.com>

	* sem_elab.adb: Add missing elaboration insertion
	characters to info messages.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Add_Scope_To_Clean): Use Append_Unique_Elmt.
	(Analyze_Inlined_Bodies): Refine type of a local counter;
	remove extra whitespace.

2024-05-21  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-taenca.adb (Wait_For_Completion): Remove call to
	Yield.
	* libgnarl/s-tasren.adb (Timed_Selective_Wait, Wait_For_Call):
	Remove calls to Yield.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_of_ada_2012_features.rst:
	Fix formatting.
	* gnat_rm.texi: Regenerate.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_of_ada_2012_features.rst:
	Order list by AI number.
	* gnat_rm.texi: Regenerate.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_of_ada_2012_features.rst
	(AI-0216): Fix index reference.
	* gnat_rm.texi: Regenerate.

2024-05-21  Viljar Indus  <indus@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Update the documentation of -gnatw.n and -gnatw.l
	* gnat_ugn.texi: Regenerate.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(No_Tagged_Streams): Document how to avoid exposing entity names
	for the entire partition.
	* exp_disp.adb (Make_DT): Make use of restriction No_Streams.
	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Respect
	Discard_Names in the generated Put_Image procedure.
	* gnat_rm.texi: Regenerate.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
	useless conversions.

2024-05-21  Piotr Trojanek  <trojanek@adacore.com>

	* exp_put_image.adb (Build_Record_Put_Image_Procedure): Remove
	trailing NUL from the fully qualified type name.

2024-05-21  Eric Botcazou  <ebotcazou@adacore.com>

	* err_vars.ads (Error_Msg_Sloc): Initialize to No_Location.

2024-05-21  Justin Squirek  <squirek@adacore.com>

	* doc/gnat_ugn/platform_specific_information.rst: Add note about
	different priority level granularities under different policies in
	Windows and move POSIX related info into new section.
	* libgnarl/s-taprop.ads: Add note about Task_Dispatching_Policy.
	* libgnarl/s-taprop__mingw.adb:
	(Set_Priority): Add use of Non_FIFO_Underlying_Priorities.
	* libgnat/system-mingw.ads: Add documentation for modifying
	priority mappings and add alternative mapping
	Non_FIFO_Underlying_Priorities.
	* gnat_ugn.texi: Regenerate.

2024-05-20  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb: Misc cleanups and comment fixes.
	(Check_Overloaded_Formal_Subprogram): Remove the Others_Choice
	error message.
	(Others_Choice): Remove this variable; no longer needed.
	* types.ads (Text_Ptr): Add a range constraint limiting the
	subtype to values that are actually used. This has the advantage
	that when the compiler is compiled with validity checks,
	uninitialized values of subtypes Text_Ptr and Source_Ptr will be
	caught.
	* sinput.ads (Sloc_Adjust): Use the base subtype; this is used as
	an offset, so we need to allow arbitrary negative values.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.ads (Preload_Finalization_Collection): Delete.
	* exp_ch7.adb (Allows_Finalization_Collection): Revert change.
	(Preload_Finalization_Collection): Delete.
	* opt.ads (Interface_Seen): Likewise.
	* scng.adb (Scan): Revert latest change.
	* sem_ch10.adb: Remove clause for Exp_Ch7.
	(Analyze_Compilation_Unit): Revert latest change.
	* libgnat/i-c.ads: Use a fully qualified name for the standard "+"
	operator in the preconditons/postconditions of subprograms.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Expand_Record_Aggregate.Component_OK_For_Backend):
	Also return False for a delayed conditional expression.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.ads (Check_Compile_Time_Size): Remove obsolete description
	of usage for the Size_Known_At_Compile_Time flag.
	* freeze.adb (Check_Compile_Time_Size.Size_Known): In the case where
	a variant part is present, do not return False if Esize is known.
	* sem_util.adb (Needs_Secondary_Stack.Caller_Known_Size_Record): Add
	missing "Start of processing" comment.  Return true if either a size
	clause or an object size clause has been given for the first subtype
	of the type.

2024-05-20  Bob Duff  <duff@adacore.com>

	* sinfo.ads: Misc comment corrections and clarifications.
	The syntax for GENERIC_ASSOCIATION and FORMAL_PACKAGE_ACTUAL_PART
	was wrong.
	Emphasize that "others => <>" is not represented as an
	N_Generic_Association (with or without Box_Present set),
	and give examples illustrating the various possibilities.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo-utils.ads (Is_Base_Type): Move to Miscellaneous Subprograms
	section and add description.
	* fe.h (Is_Base_Type): Declare.

2024-05-20  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
	Resolve_Record_Aggregate in front of code related to calling
	Resolve_Container_Aggregate (and add test that the aggregate is
	not homogeneous), and remove special-case testing and call to
	Resolve_Container_Aggregate for empty aggregates. Also, add error
	check for an attempt to use "[]" for an aggregate of a record type
	that does not specify an Aggregate aspect.
	(Resolve_Record_Aggregate): Remove error check for record
	aggregates with "[]" (now done by Resolve_Aggregate).

2024-05-20  Gary Dismukes  <dismukes@adacore.com>

	* sem_aggr.adb (Resolve_Aggregate): Move condition and call for
	Resolve_Record_Aggregate in front of code related to calling
	Resolve_Container_Aggregate (and add test that the aggregate
	is not homogeneous), and remove special-case testing and call
	to Resolve_Container_Aggregate for empty aggregates.

2024-05-20  Justin Squirek  <squirek@adacore.com>

	* accessibility.adb (Accessibility_Level): Add cases for 'First
	and 'Last.

2024-05-20  Justin Squirek  <squirek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Remove restriction on 'Super
	for abstract types.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.ads (Attribute_Impl_Def): Fix list of
	implementation-defined attributes.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Attribute_12): Add attributes Old,
	Overlaps_Storage and Result.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Move IF statement that
	checks restriction No_Implementation_Attributes for Ada 2005,
	2012 and Ada 2022 attributes inside Comes_From_Source condition
	that checks the same restriction for Ada 83 attributes.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Attribute): Remove condition that is
	already checked by an enclosing IF statement.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.ads (Universal_Type_Attribute): Simplify using
	array aggregate syntax with discrete choice list.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.ads (Attribute_Impl_Def): Fix style in comment.

2024-05-20  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-taprop__linux.adb (Enter_Task): Move setting
	of thread ID out of Enter_Task.
	(Initialize): Set thread ID for the environment task.
	(Create_Task): Remove now unnecessary Unrestricted_Access
	attribute and add justification for a memory write.
	* libgnarl/s-taprop__posix.adb: Likewise.
	* libgnarl/s-taprop__qnx.adb: Likewise.
	* libgnarl/s-taprop__rtems.adb: Likewise.
	* libgnarl/s-taprop__solaris.adb: Likewise.
	* libgnarl/s-taspri__posix.ads: Remove pragma Atomic for
	Private_Data.Thread, and update documentation comment.
	* libgnarl/s-taspri__lynxos.ads: Likewise.
	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
	* libgnarl/s-taspri__solaris.ads: Likewise.
	* libgnarl/s-tporft.adb (Register_Foreign_Thread): Adapt to
	Enter_Task not setting the thread ID anymore.
	* libgnarl/s-tassta.adb (Task_Wrapper): Update comment.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.ads (Is_Delayed_Conditional_Expression): New predicate.
	* exp_aggr.adb (Convert_To_Assignments.Known_Size): Likewise.
	(Convert_To_Assignments): Climb the parent chain, looking through
	qualified expressions and dependent expressions of conditional
	expressions, to find out whether the expansion may be delayed.
	Call Known_Size for this in the case of an object declaration.
	If so, set Expansion_Delayed on the aggregate as well as all the
	intermediate conditional expressions.
	(Initialize_Component): Reset the Analyzed flag on an initialization
	expression that is a conditional expression whose expansion has been
	delayed.
	(Is_Delayed_Conditional_Expression): New predicate.
	* exp_ch3.adb (Expand_N_Object_Declaration): Handle initialization
	expressions that are conditional expressions whose expansion has
	been delayed.
	* exp_ch4.adb (Build_Explicit_Assignment): New procedure.
	(Expand_Allocator_Expression): Handle initialization expressions
	that are conditional expressions whose expansion has been delayed.
	(Expand_N_Case_Expression): Deal with expressions whose expansion
	has been delayed by waiting for the rewriting of their parent as
	an assignment statement and then optimizing the assignment.
	(Expand_N_If_Expression): Likewise.
	(Expand_N_Qualified_Expression): Do not apply a predicate check to
	an operand that is a delayed aggregate or conditional expression.
	* gen_il-gen-gen_nodes.adb (N_If_Expression): Add Expansion_Delayed
	semantic flag.
	(N_Case_Expression): Likewise.
	* sinfo.ads (Expansion_Delayed): Document extended usage.

2024-05-20  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate): Add top-level
	variables Choice_{Lo|Hi} and Int_Choice_{Lo|Hi} used for
	determining the low and high bounds of component association
	choices. Replace code for determining whether we have an indexed
	aggregate with call to new function Sem_Aggr.Is_Indexed_Aggregate.
	Remove test of whether Empty_Subp is a function, since it must be
	a function. Move Default and Count_Type to be locals of a new
	block enclosing the code that creates the object to hold the
	aggregate length, and set them according to the default and type
	of the Empty function's parameter when present (and to Empty and
	Standard_Natural otherwise). Use Siz_Exp for the aggregate length
	when set, and use Empty's default length when available, and use
	zero for the length otherwise. In generating the call to the
	New_Indexed function, use the determined lower and upper bounds if
	determined earlier by Aggregate_Size, and otherwise compute those
	from the index type's lower bound and the determined aggregate
	length. In the case where a call to Empty is generated and the
	function has a formal parameter, pass the value saved in Siz_Decl
	(otherwise the parameter list is empty). Remove code specific to
	making a parameterless call to the Empty function. Extend the code
	for handling positional container aggregates to account for types
	that define Assign_Indexed, rather than just Add_Unnamed, and in
	the case of indexed aggregates, create a temporary object to hold
	values of the aggregate's key index, and initialize and increment
	that temporary for each call generated to the Assign_Indexed
	procedure. For named container aggregates that have key choices
	given by ranges, call Expand_Range_Component to generate a loop
	that will call the appropriate insertion procedure for each value
	of the range. For indexed aggregates with a Component_Associations
	list, set and use the Assign_Indexed procedure for each component
	association, whether or not there's an iterator specification.
	(Add_Range_Size): Add code to determine the low and high bounds of
	the range and capture those in up-level variables when their value
	is less than or greater than (respectively) the current minimum
	and maximum bounds values.
	(Aggregate_Size): Separately handle the case where a single choice
	is of a discrete type, and call Add_Range_Size to take its value
	into consideration for determination of min and max bounds of the
	aggregate. Add comments in a couple of places.
	(Build_Siz_Exp): Remove the last sentence and "???" from the
	comment that talks about accumulating nonstatic sizes, since that
	sentence seems to be obsolete. Record the low and high bound
	values in Choice_Lo and Choice_Hi in the case of a nonstatic
	range.
	(Expand_Iterated_Component): Set the Defining_Identifier of the
	iterator specification to the Loop_Id in the
	N_Iterated_Component_Association case.
	(Expand_Range_Component): Procedure unnested from the block
	handling indexed aggregates in Expand_Container_Aggregate, and
	moved to top level of that procedure so it can also be called for
	Add_Named cases. A formal parameter Insert_Op is added, and
	existing calls to this procedure are changed to pass the
	appropriate insertion procedure's Entity.
	* sem_aggr.ads: Add with_clause for Sinfo.Nodes.
	(Is_Indexed_Aggregate): New function for use by
	Resolve_Container_Aggregate and Expand_Container_Aggregate.
	* sem_aggr.adb: Add with_clause for Sem_Ch5. Move with_clause for
	Sinfo.Nodes to sem_aggr.ads.
	(Is_Indexed_Aggregate): New function to determine whether a
	container aggregate is a container aggregate (replacing local
	variable of the same name in Resolve_Container_Aggregate).
	(Resolve_Iterated_Association): Remove part of comment saying that
	a Key_Expression is always present. Set Parent field of the copy
	of a component association with a loop parameter specification. On
	the setting of Loop_Param_Id, account for a
	Loop_Parameter_Specification being changed into an
	Iterator_Specification as a result of being analyzed. Only call
	Preanalyze_And_Resolve on Key_Expr when a key expression is
	actually present. Remove loop for handling choices for the case of
	an N_Component_Association with a Defining_Identifier (there
	shouldn't be more than one choice in this case, and add an
	assertion to ensure that). Also add code here to handle the case
	where the choice is a function call, creating an
	iterator_specification analyzing it, and call
	Resolve_Iterated_Association recursively to process it. Add error
	check to enforce RM22 4.3.5(27), which requires that the type of
	the loop parameter must be the same as the key type when there is
	no key expression and the aggregate is an indexed aggregate or has
	an Add_Named op.
	(Resolve_Container_Aggregate): In the Add_Unnamed case, call
	Resolve_Iterated_Association for both
	N_Iterated_Element_Association and N_Component_Association (rather
	than just the latter). Remove error check for nonstatic choices in
	component associations in Add_Named cases (multiple named
	nonstatic associations are fine except in indexed aggregates).
	Remove local variable Is_Indexed_Aggregate, replaced with new
	library-level function of the same name, and add test of
	Is_Indexed_Aggregate in the case where the aggregate type has an
	Assign_Indexed operation, as a guard for doing error checks for
	indexed aggregates. For indexed aggregate resolution, do not call
	Analyze_And_Resolve on the expression of an
	N_Component_Association in the "box association" case. Move error
	checks for indexed aggregates with iterated associations that flag
	cases where an association is a loop_parameter_specification with
	an iterator filter or a key expression (violation of RM22
	4.3.5(28/5)), from the loop that checks for contiguous and
	nonoverlapping choices and into the preceding association loop
	after the call to Resolve_Iterated_Association. The RM reference
	is added to the error-message strings.

2024-05-20  Ronan Desplanques  <desplanques@adacore.com>

	* libgnarl/s-taprop__linux.adb (Set_Task_Affinity): Fix
	decision about whether to call CPU_FREE.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.ads (Convert_Aggr_In_Allocator): Remove Aggr parameter
	and adjust description.
	(Convert_Aggr_In_Object_Decl): Adjust description.
	* exp_aggr.adb (Convert_Aggr_In_Allocator): Remove Aggr parameter
	and add local variable of the same name instead.  Adjust call to
	Convert_Array_Aggr_In_Allocator.
	(Convert_Aggr_In_Object_Decl): Add comment for early return and
	remove useless inner block statement.
	(Convert_Array_Aggr_In_Allocator):  Remove Aggr parameter and add
	local variable of the same name instead.
	(In_Place_Assign_OK): Move down declarations of local variables.
	(Convert_To_Assignments): Put all declarations of local variables
	in the same place.  Fix typo in comment.  Replace T with Full_Typ.
	* exp_ch4.adb (Expand_Allocator_Expression): Call Unqualify instead
	of Expression on the qualified expression of the allocator for the
	sake of consistency.  Adjust call to Convert_Aggr_In_Allocator.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Eval_Attribute): Handle enumeration type with
	Discard_Names.

2024-05-20  Piotr Trojanek  <trojanek@adacore.com>

	* exp_imgv.adb (Expand_Width_Attribute): Fix for 'Width that
	is computed at run time.
	* sem_attr.adb (Eval_Attribute): Fix for 'Width that is computed
	at compilation time.

2024-05-20  Sebastian Poeplau  <poeplau@adacore.com>

	* libgnat/s-pooglo.adb (Allocate): Use arithmetic on
	System.Address to compute the aligned address.

2024-05-20  Steve Baird  <baird@adacore.com>

	* freeze.adb (Adjust_Esize_For_Alignment): Assert that a valid
	Alignment specification cannot result in adjusting the given
	type's Esize to be larger than System_Max_Integer_Size.
	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): In analyzing
	an Alignment specification, enforce the rule that a specified
	Alignment value for a discrete or fixed-point type shall not be
	larger than System_Max_Integer_Size / 8 .

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/g-sothco.ads (In_Addr): Add aspect Universal_Aliasing.

2024-05-20  Jose Ruiz  <ruiz@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Exclude detection of duplicates
	because they are detected elsewhere.

2024-05-20  Jose Ruiz  <ruiz@adacore.com>

	* exp_ch9.adb (Expand_N_Protected_Type_Declaration): Clarify
	comments.
	* sem_prag.adb (Analyze_Pragma): Check for duplicates
	Max_Entry_Queue_Length, Max_Entry_Queue_Depth and Max_Queue_Length
	for the same protected entry.
	* sem_util.adb (Get_Max_Queue_Length): Take into account all three
	representation aspects that can be used to set this restriction.
	(Has_Max_Queue_Length): Likewise.
	* doc/gnat_rm/implementation_defined_pragmas.rst:
	(pragma Max_Queue_Length): Fix pragma in example.
	* gnat_rm.texi: Regenerate.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.ads (Collection_Node): Move to private part.
	(Collection_Node_Ptr): Likewise.
	(Header_Alignment): Change to declaration and move completion to
	private part.
	(Header_Size): Likewise.
	(Lock_Type): Delete.
	(Finalization_Collection): Move Lock component and remove default
	value for Finalization_Started component.
	* libgnat/s-finpri.adb (Initialize): Reorder statements.

2024-05-20  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Universal_Aliasing): Remove reference to No_Strict_Aliasing.
	* doc/gnat_ugn/gnat_and_program_execution.rst
	(Optimization and Strict Aliasinng): Simplify first example and
	make it more consistent with the second.  Add description of the
	effects of pragma Universal_Aliasing and document new warning
	issued for unchecked conversions.  Remove obsolete stuff.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/115133
	* libgnarl/s-osinte__solaris.ads (mutex_t): Fix typo.
	* libgnarl/s-taprop__solaris.adb (Record_Lock): Add conversion.
	(Check_Sleep): Likewise.
	(Record_Wakeup): Likewise.
	(Check_Unlock): Likewise.
	* libgnarl/s-tasini.adb (Initialize_RTS_Lock): Add pragma Import
	on the overlaid variable.
	(Finalize_RTS_Lock): Likewise.
	(Acquire_RTS_Lock): Likewise.
	(Release_RTS_Lock): Likewise.
	* libgnarl/s-taspri__solaris.ads (To_RTS_Lock_Ptr): New instance
	of Ada.Unchecked_Conversion.
	* libgnat/s-oslock__solaris.ads: Add with clause for
	Ada.Unchecked_Conversion.
	(array_type_9): Add missing name qualification.
	(record_type_3): Likewise.
	(mutex_t): Fix formatting.

2024-05-17  Viljar Indus  <indus@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate):
	Derive the size for iterable aggregates in the case of
	one-dimensional array objects.

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* exp_aggr.adb (Aggr_Size_OK): Remove workaround and extend
	comment.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* bindgen.adb (Gen_Adainit): Generate declaration and call to the
	imported procedure __gnat_tasking_runtime_initialize if need be.
	* libgnat/s-soflin.ads (Locking Soft-Links): Add commentary.
	* libgnarl/s-tasini.adb (Tasking_Runtime_Initialize): New procedure
	exported as __gnat_tasking_runtime_initialize.  Initialize RTS_Lock
	manipulation routines here instead of...
	(Init_RTS): ...here.

2024-05-17  Steve Baird  <baird@adacore.com>

	* scng.adb (scan): When checking for an unprocessed preprocessor
	directive, take into account the preprocessor's rules about case
	insensitivity and about white space between the '#' and the
	keyword.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnarl/s-taspri__mingw.ads: Add clause for System.OS_Interface.
	(Private_Data): Change type of Thread component.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/g-alvevi.ads: Add pragma Universal_Aliasing for all the
	view types.
	* libgnat/s-stratt.ads: Likewise for Fat_Pointer type.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-oslock$(objext).
	(LIBGNAT_TARGET_PAIRS): Use s-oslock__dummy.ads by default.
	Set specific s-oslock.ads source file for all the platforms.
	* exp_ch7.ads (Preload_Finalization_Collection): New procedure.
	* exp_ch7.adb (Allows_Finalization_Collection): Return False if
	System.Finalization_Primitives has not been preloaded.
	(Preload_Finalization_Collection): New procedure.
	* opt.ads (Interface_Seen): New boolean variable.
	* s-oscons-tmplt.c: Use "N" string for pragma Style_Checks.
	* scng.adb (Scan): Set Interface_Seen upon seeing "interface".
	* sem_ch10.adb: Add clause for Exp_Ch7.
	(Analyze_Compilation_Unit): Call Preload_Finalization_Collection
	after the context of the unit is analyzed.
	* libgnarl/a-rttiev.adb: Add with clause for System.OS_Locks and
	alphabetize others.
	(Event_Queue_Lock): Adjust qualified name of subtype.
	* libgnarl/s-osinte__aix.ads: Add with clause for System.OS_Locks
	and change pthread_mutex_t into a local subtype.
	* libgnarl/s-osinte__android.ads: Likewise.
	* libgnarl/s-osinte__darwin.ads: Likewise.
	* libgnarl/s-osinte__dragonfly.ads: Likewise.
	* libgnarl/s-osinte__freebsd.ads: Likewise.
	* libgnarl/s-osinte__gnu.ads: Likewise.
	* libgnarl/s-osinte__hpux-dce.ads: Likewise.
	* libgnarl/s-osinte__hpux.ads: Add Likewise.
	* libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise.
	* libgnarl/s-osinte__linux.ads: Likewise.
	* libgnarl/s-osinte__lynxos178e.ads: Likewise.
	* libgnarl/s-osinte__qnx.ads: Likewise.
	* libgnarl/s-osinte__rtems.ads: Likewise.
	* libgnarl/s-osinte__mingw.ads: Add with clause for System.OS_Locks
	and change CRITICAL_SECTION into a local subtype.  Add declarations
	for imported procedures dealing with CRITICAL_SECTION.
	* libgnarl/s-osinte__solaris.ads: Add with clause for System.OS_Locks
	and change mutex_t into a local subtype.
	* libgnarl/s-osinte__vxworks.ads: Add missing blank line.
	* libgnarl/s-taprop.ads: Alphabetize clauses and package renamings.
	Use qualified name for RTS_Lock throughout.
	* libgnarl/s-taprop__dummy.adb: Add use clause for System.OS_Locks
	and alphabetize others.
	* libgnarl/s-taprop__hpux-dce.adb: Likewise.
	* libgnarl/s-taprop__linux.adb: Likewise.
	* libgnarl/s-taprop__posix.adb: Likewise.
	* libgnarl/s-taprop__qnx.adb: Likewise.
	* libgnarl/s-taprop__rtems.adb: Likewise.
	* libgnarl/s-taprop__solaris.adb: Likewise.
	* libgnarl/s-taprop__vxworks.adb: Likewise.
	* libgnarl/s-taprop__mingw.adb: Likewise.  Remove declarations for
	imported procedures dealing with CRITICAL_SECTION.
	* libgnarl/s-tarest.adb: Add with clause for System.OS_Locks and
	alphabetize others.
	(Global_Task_Lock): Adjust qualified name of subtype.
	* libgnarl/s-tasini.adb: Add clause for System.OS_Locks.
	(Initialize_RTS_Lock): New procedure.
	(Finalize_RTS_Lock): Likewise.
	(Acquire_RTS_Lock): Likewise.
	(Release_RTS_Lock): Likewise.
	(Init_RTS): Add compile-time assertions for RTS_Lock types.
	Set the soft links for the RTS lock manipulation routines.
	* libgnarl/s-taspri__dummy.ads: Add with clause for System.OS_Locks.
	(RTS_Lock): Delete and adjust throughout accordingly.
	* libgnarl/s-taspri__hpux-dce.ads: Likewise.
	* libgnarl/s-taspri__lynxos.ads: Likewise.
	* libgnarl/s-taspri__mingw.ads: Likewise.
	* libgnarl/s-taspri__posix-noaltstack.ads: Likewise.
	* libgnarl/s-taspri__posix.ads: Likewise.
	* libgnarl/s-taspri__solaris.ads: Likewise.
	* libgnarl/s-taspri__vxworks.ads: Likewise.
	* libgnat/s-finpri.ads: Add clause for System.OS_Locks.
	(Finalization_Collection): Change type of Lock.
	* libgnat/s-finpri.adb (Initialize): Call Initialize_RTS_Lock.
	(Lock_Collection): Call Acquire_RTS_Lock.
	(Unlock_Collection): Call Release_RTS_Lock.
	* libgnat/s-oslock__dummy.ads: New file.
	* libgnat/s-oslock__hpux-dce.ads: Likewise.
	* libgnat/s-oslock__mingw.ads: Likewise.
	* libgnat/s-oslock__posix.ads: Likewise.
	* libgnat/s-oslock__solaris.ads: Likewise.
	* libgnat/s-oslock__vxworks.ads: Likewise.
	* libgnat/s-soflin.ads (Null_Set_Address): New null procedure.
	(Initialize_RTS_Lock): New soft link.
	(Finalize_RTS_Lock): Likewise.
	(Acquire_RTS_Lock): Likewise.
	(Release_RTS_Lock): Likewise.
	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
	call Apply_Predicate_Check on the resulting access value if need be.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Materialize_Entity): Document secondary usage.

2024-05-17  Steve Baird  <baird@adacore.com>

	* local_restrict.adb (Active_Restriction): When traversing scopes,
	do not skip over a subprogram body.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnarl/s-taprop__dummy.adb (Initialize_Lock): Fix formatting.
	* libgnarl/s-taprop__linux.adb (RTS_Lock_Ptr): Delete.
	(Init_Mutex): Rename into...
	(Initialize_Lock): ...this.
	(Initialize_Lock [Lock]): Call above procedure.
	(Initialize_Lock [RTS_Lock]): Likewise.
	(Initialize_TCB): Likewise.
	* libgnarl/s-taprop__posix.adb (Initialize_Lock): New procedure
	factored out from the other two homonyms.
	(Initialize_Lock [Lock]): Call above procedure.
	(Initialize_Lock [RTS_Lock]): Likewise.
	* libgnarl/s-taprop__qnx.adb (RTS_Lock_Ptr): Delete.
	(Init_Mutex): Rename into...
	(Initialize_Lock): ...this.
	(Initialize_Lock [Lock]): Call above procedure.
	(Initialize_Lock [RTS_Lock]): Likewise.
	(Initialize_TCB): Likewise.
	* libgnarl/s-taprop__rtems.adb (Initialize_Lock): New procedure
	factored out from the other two homonyms.
	(Initialize_Lock [Lock]): Call above procedure.
	(Initialize_Lock [RTS_Lock]): Likewise.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Known_On_Entry): Handle constants introduced
	by validity checks.

2024-05-17  Steve Baird  <baird@adacore.com>

	* libgnat/a-direct.adb (Start_Search_Internal): Do not call
	Modification_Time for a special file; declare a Calendar.Time
	constant No_Time and use that instead.

2024-05-17  Steve Baird  <baird@adacore.com>

	* exp_ch3.adb (Build_Equivalent_Record_Aggregate): Add
	Has_Predicates test for a scalar component to match what is
	already done for other kinds of components.

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Improve comments
	and condition.

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* sem_aggr.adb (Resolve_Array_Aggregate): Fix location of error
	message.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Move to
	Sem_Util, so it can be used from GNATprove.
	* sem_util.ads (Is_Unconstrained_Or_Tagged_Item): Move from
	Sem_Prag; spec.
	* sem_util.adb (Is_Unconstrained_Or_Tagged_Item): Move from
	Sem_Prag; body.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_pakd.adb (Create_Packed_Array_Impl_Type): For non-bit-packed
	array types, propagate the aliased property of the component.
	(Install_PAT): Set fields on the implicit base type of an array.
	* libgnat/a-stream.ads (private part): Add pragma Universal_Aliasing
	for Stream_Element.
	* libgnat/g-alleve.ads: Add pragma Universal_Aliasing for all the
	vector types.
	* libgnat/g-alleve__hard.ads: Likewise.

2024-05-17  Bob Duff  <duff@adacore.com>

	* bcheck.adb (Check_Consistency_Of_Sdep): Split out new procedure.
	Add check for special case of subprogram spec that no longer
	exists.
	(Check_Consistency): Call Check_Consistency_Of_Sdep, except when
	Reified_Child_Spec is True. No need for "goto Continue" or "exit
	Sdep_Loop".
	* ali.ads (Subunit_Name, Unit_Name): Change the type to
	Unit_Name_Type. Add a comment pointing to the ALI file
	documentation, because it's in a somewhat-surprising place.
	* ali.adb (Scan_ALI): Subunit_Name and Unit_Name are now
	Unit_Name_Type. Remove comment explaining why Name_Find is used;
	Name_Find is the usual case. Do not remove the "%s" or "%b" from
	the Unit_Name. We need to be able to distinguish specs and bodies.
	This is also necessary to obey the invariant of Unit_Name_Type.
	* binde.adb (Write_Closure): Subunit_Name is now Unit_Name_Type.
	* clean.adb (Clean_Executables): Likewise.

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* sem_aggr.adb (Resolve_Null_Array_Aggregate): Update
	documentation comments.

2024-05-17  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Has_Some_Controlled_Component): Fix a bug which
	causes (in some cases involving a Disable_Controlled aspect
	specification) Needs_Finalization to return different answers for
	one type depending on whether the function is called before or
	after the type is frozen.
	* libgnat/a-coorse.ads: Type Control_Reference_Type gets an Adjust
	procedure.
	* libgnat/a-cborse.ads: Likewise.
	* libgnat/a-ciorse.ads: Likewise
	* libgnat/a-coorse.adb:
	(Finalize): Reclaim allocated Key_Type object.
	(Adjust): New procedure; prevent sharing of non-null Key_Access
	values by allocating a copy.
	* libgnat/a-cborse.adb: Likewise.
	* libgnat/a-ciorse.adb: Likewise.

2024-05-17  Bob Duff  <duff@adacore.com>

	* uname.adb (Get_Unit_Name_String): Move Asserts after
	Buf is initialized.

2024-05-17  Bob Duff  <duff@adacore.com>

	* ali-util.adb (Read_Withed_ALIs): Minor reformatting.
	* bindo-units.adb (Corresponding_Body): Add assert.
	(Corresponding_Spec): Likewise.
	* uname.adb: Clean up assertions, use available functions.
	Get_Spec_Name/Get_Body_Name can assert that N obeys the
	conventions for Unit_Name_Type (end in "%s" or "%b").

2024-05-17  Sebastian Poeplau  <poeplau@adacore.com>

	* raise-gcc.c: Work around __builtin_code_address_from_pointer
	if it is unavailable.

2024-05-17  Marc Poulhiès  <poulhies@adacore.com>

	* exp_aggr.adb (Build_Array_Aggr_Code) <Gen_Loop>: Copy the
	initialization expression when unrolling the loop.

2024-05-17  Bob Duff  <duff@adacore.com>

	* sem_disp.adb (Check_Dispatching_Operation): Call
	Create_Extra_Formals, so that the caller will have an extra
	"constrained" parameter, which will be checked on assignment in
	the callee, and will be passed in by the caller.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Remove call
	to Has_Discriminants; combine ELSIF branches.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch7.adb (New_Private_Type): Simplify setting of
	Is_Constrained flag.
	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Simplify
	detection of private types with no discriminant.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Allow objects
	of private types with unknown discriminants.

2024-05-17  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): Tune repeated
	testing of type kinds.

2024-05-17  Marc Poulhiès  <poulhies@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst: Fix
	copy/paste.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-05-17  Viljar Indus  <indus@adacore.com>

	* sem_ch3.adb (Analyze_Component_Declaration):
	Apply range checks only for Scalar_Types to
	ensure that they have the Scalar_Range attribute.

2024-05-17  Viljar Indus  <indus@adacore.com>

	* sem_ch3.adb (Analyze_Component_Declaration):
	Add Range_Checks for Subtype_Indications

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch4.adb (Expand_N_Case_Expression): Remove call to
	Relocate_Node.
	* sem_attr.adb (Analyze_Attribute): Likewise.

2024-05-17  Ronan Desplanques  <desplanques@adacore.com>

	* exp_aggr.adb (Flatten): Small cleanup.

2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Analyze_Attribute) <Attribute_Size>: Remove special
	processing for pragma Compile_Time_{Warning,Error}.
	(Eval_Attribute.Compile_Time_Known_Attribute): Set Is_Static on the
	resulting value if In_Compile_Time_Warning_Or_Error is set.
	(Eval_Attribute.Full_Type): New helper function.
	(Eval_Attribute): Call Full_Type for type attributes.  Add handling
	of Object_Size and adjust that of Max_Size_In_Storage_Elements in
	the non-static case.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Attach_Object_To_Master_Node): Remove reference to a
	transient object in comment.

2024-05-16  Marc Poulhiès  <poulhies@adacore.com>

	* exp_ch7.adb (Reset_Scopes_To_Block_Elab_Proc): also reset scope
	for object declarations.

2024-05-16  Steve Baird  <baird@adacore.com>

	* checks.adb (Expr_Known_Valid): Return True for a static expression.
	* exp_util.adb (Adjust_Condition): No validity check needed for a
	condition if it is an expression for which a validity check has
	already been generated.

2024-05-16  Gary Dismukes  <dismukes@adacore.com>

	* libgnat/a-coinve.ads (type Vector): In the Aggregate aspect for
	this type, the Empty operation is changed to denote the Empty
	function, rather than the Empty_Vector constant.
	* exp_aggr.adb (Expand_Container_Aggregate): Remove code for
	handling the case where the Empty_Subp denotes a constant object,
	which should never happen (and add an assertion that Empty_Subp
	must denote a function).
	* sem_ch13.adb (Valid_Empty): No longer allow the entity to be an
	E_Constant, and require the (optional) parameter of an Empty
	function to be of a signed integer type (rather than any integer
	type).

2024-05-16  Justin Squirek  <squirek@adacore.com>

	* doc/gnat_rm/implementation_defined_attributes.rst: Add entry for
	Super attribute.
	* accessibility.adb (Accessibility_Level): Add handling for Super.
	* exp_attr.adb (Expand_N_Attribute_Reference): Add entry for
	Super.
	* sem_attr.adb (Analyze_Attribute): Create a case to handle the
	semantic checking and expansion for Super.
	(Eval_Attribute): Add entry for Super.
	* sem_attr.ads: Add entry for Super.
	* sem_util.adb (Is_Aliased_View, Is_Variable): Add case to handle
	references to 'Super.
	* snames.ads-tmpl: Register Name_Super and Attribute_Super.
	* gnat_rm.texi: Regenerate.

2024-05-16  Ronan Desplanques  <desplanques@adacore.com>

	* sem_util.ads (Check_Function_Writable_Actuals): Fix comment.

2024-05-16  Ronan Desplanques  <desplanques@adacore.com>

	* sem_res.adb (Resolve_Case_Expression): Add length check
	insertion.
	* exp_ch4.adb (Expand_N_Case_Expression): Add handling of nodes
	known to raise Constraint_Error.

2024-05-16  Sebastian Poeplau  <poeplau@adacore.com>

	* adaint.c: New defines for STANDALONE mode.

2024-05-16  Viljar Indus  <indus@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper):
	If the spec is not present for a subprogram body then
	check if the body definiton was created for a protected
	procedure.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_cg.adb (Generate_CG_Output): Remove code for ignored ghost
	entities that applied to subprogram calls.
	(Register_CG_Node): Skip ignored ghost entities, both calls
	and tagged types, when they are registered.

2024-05-16  Ronan Desplanques  <desplanques@adacore.com>

	* checks.adb (Apply_Selected_Length_Checks): Fix reason code.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.adb (Raise_From_Controlled_Operation): New
	declaration of imported procedure moved from...
	(Finalize_Master): ...there.
	(Finalize): Call Raise_From_Controlled_Operation instead of
	Reraise_Occurrence to propagate the exception, if any.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch4.adb (Analyze_If_Expression): Add guard for
	if_expression without an ELSE part.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch13.adb (Expand_N_Free_Statement): After analysis, the
	new temporary has the type of its Object_Definition and the new
	occurrence of this temporary has this type as well; simplify.
	* sem_util.adb
	(Indirect_Temp_Value): Remove redundant call to Set_Etype;
	simplify.
	(Is_Access_Type_For_Indirect_Temp): Add missing body header.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Known_On_Entry): Check whether condition and
	dependent expressions of an if_expression are known on entry.

2024-05-16  Ronan Desplanques  <desplanques@adacore.com>

	* checks.ads: Fix comments.
	* checks.adb: Likewise.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.ads: Add use type clause for Storage_Offset.
	(Header_Alignment): Turn into an expression function.
	(Header_Size): Likewise.
	* libgnat/s-finpri.adb: Remove use type clause for Storage_Offset.
	(Header_Alignment): Delete.
	(Header_Size): Likewise.

2024-05-16  Marc Poulhiès  <poulhies@adacore.com>

	* exp_ch7.adb (Unnest_Loop::Fixup_Inner_Scopes): detect a new
	problematic pattern and fixup the scope accordingly.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix typo.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.ads (Header_Alignment): New function.
	(Header_Size): Adjust description.
	(Master_Node): Put Finalize_Address as first component.
	(Collection_Node): Likewise.
	* libgnat/s-finpri.adb (Header_Alignment): New function.
	(Header_Size): Return the object size in storage units.
	* libgnat/s-stposu.ads (Adjust_Controlled_Dereference): Replace
	collection node with header in description.
	* libgnat/s-stposu.adb (Adjust_Controlled_Dereference): Likewise.
	(Allocate_Any_Controlled): Likewise.  Pass the maximum of the
	specified alignment and that of the header to the allocator.
	(Deallocate_Any_Controlled): Likewise to the deallocator.

2024-05-16  Viljar Indus  <indus@adacore.com>

	* exp_aggr.adb (Two_Pass_Aggregate_Expansion):
	Explicitly create new Defining_Iterators for both
	of the loops.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch6.adb (Check_Private_Overriding): Implement the second part
	of RM 3.9.3(10) consistently in both cases.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* erroutc.adb (Set_Msg_Insertion_Reserved_Word): Fix casing for
	CUDA appearing in error message strings.
	(Set_Msg_Str): Likewise for CUDA being a part of a Name_Id.

2024-05-16  Ronan Desplanques  <desplanques@adacore.com>

	* exp_ch4.adb (Expand_Composite_Equality): Call Error_Msg_N
	instead of Error_Msg.

2024-05-16  Steve Baird  <baird@adacore.com>

	* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): Further tweaking
	of the point where a compiler-generated Put_Image or streaming
	subprogram is to be inserted in the tree. If one such subprogram
	calls another (as is often the case with, for example, Put_Image
	procedures for composite type and for a component type thereof),
	then we want to avoid use-before-definition problems that can
	result from inserting the caller ahead of the callee.

2024-05-16  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.ads (Lock_Type): New modular type.
	(Collection_Node): Add Enclosing_Collection component.
	(Finalization_Collection): Add Lock component.
	* libgnat/s-finpri.adb: Add clauses for System.Atomic_Primitives.
	(Attach_Object_To_Collection): Lock and unlock the collection.
	Save a pointer to the enclosing collection in the node.
	(Detach_Object_From_Collection): Lock and unlock the collection.
	(Finalize): Likewise.
	(Initialize): Initialize the lock.
	(Lock_Collection): New procedure.
	(Unlock_Collection): Likewise.

2024-05-16  Steve Baird  <baird@adacore.com>

	* sem_attr.adb (Eval_Attribute): Expand existing checks for
	generic formal types for which Is_Generic_Type returns False. In
	that case, mark the attribute reference as nonstatic.

2024-05-16  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Copy_Node_With_Replacement): Add call to
	Copy_Dimensions so that any dimension information associated with
	the copied node is also associated with the resulting copy.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* gen_il-gen-gen_nodes.adb (N_Procedure_Specification): Remove
	Aspect_Specifications field.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
	reuse existing constant where possible.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specification): Consistently
	reuse existing constant where possible.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.ads (Aspect_Id): Fix ordering.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Move case alternative to match
	to alphabetic order.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* gnat_cuda.adb (Remove_CUDA_Device_Entities): Fix casing
	(this primarily fixes a style, because the capitalization will
	not be preserved by the error-reporting machinery anyway).
	* sem_ch13.adb (Analyze_User_Aspect_Aspect_Specification): Fix
	casing in error message.

2024-05-16  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
	documentation.
	* sem_prag.adb: Fix comments.
	* gnat_rm.texi: Regenerate.

2024-05-14  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.ads (Aspect_Id, Boolean_Aspect): Change categorization
	of Boolean-valued SPARK aspects.
	* sem_ch13.adb (Analyze_Aspect_Specification): Adapt CASE
	statements to new classification of Boolean-valued SPARK
	aspects.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* sem_ch13.adb (Validate_Unchecked_Conversions): Add node
	parameters to Error_Msg calls.

2024-05-14  Marc Poulhiès  <poulhies@adacore.com>

	* sem_util.adb: Typo fix in comment.
	* exp_aggr.adb: Likewise.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Finalization Management): Add a short description of
	the implementation of finalization chains.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_Allocator_Expression): Move the first call to
	Build_Allocate_Deallocate_Proc up to before the accessibility check.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* errout.adb (Validate_Specific_Warnings): Adapt to record
	definition change.
	* erroutc.adb (Set_Specific_Warning_On, Set_Specific_Warning_Off,
	Warning_Specifically_Suppressed): Likewise.
	* erroutc.ads: Change record definition.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Build_Default_Initialization): Do not generate the
	protection for finalization collections.
	(Build_Heap_Or_Pool_Allocator): Set the No_Initialization flag on
	the declaration of the temporary.
	* exp_ch4.adb (Build_Aggregate_In_Place): Do not build an allocation
	procedure here.
	(Expand_Allocator_Expression): Build an allocation procedure, if it
	is required, only just before rewriting the allocator.
	(Expand_N_Allocator): Do not build an allocation procedure if the
	No_Initialization flag is set on the allocator, except for those
	generated for special return objects.  In other cases, build an
	allocation procedure, if it is required, only before rewriting
	the allocator.
	* exp_ch7.ads (Make_Address_For_Finalize): New function declaration.
	* exp_ch7.adb (Finalization Management): Update description for
	dynamically allocated objects.
	(Make_Address_For_Finalize): Remove declaration.
	(Find_Last_Init): Change to function and move to...
	(Process_Object_Declaration): Adjust to above change.
	* exp_util.ads (Build_Allocate_Deallocate_Proc): Add Mark parameter
	with Empty default and document it.
	(Find_Last_Init): New function declaration.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Add Mark parameter
	with Empty default and pass it in recursive call.  Deal with type
	conversions created for interface types.  Adjust call sequence to
	Allocate_Any_Controlled by changing Collection to In/Out parameter
	and removing Finalize_Address parameter.  For a controlled object,
	generate a conditional call to Attach_Object_To_Collection for an
	allocation and to Detach_Object_From_Collection for a deallocation.
	(Find_Last_Init): ...here.  Compute the initialization type for an
	allocator whose designating type is class wide specifically and also
	handle concurrent types.
	* rtsfind.ads (RE_Id): Add RE_Attach_Object_To_Collection and
	RE_Detach_Object_From_Collection.
	(RE_Unit_Table): Add entries for RE_Attach_Object_To_Collection and
	RE_Detach_Object_From_Collection.
	* libgnat/s-finpri.ads (Finalization_Started): Delete.
	(Attach_Node_To_Collection): Likewise.
	(Detach_Node_From_Collection): Move to...
	(Attach_Object_To_Collection): New procedure declaration.
	(Detach_Object_From_Collection): Likewise.
	(Finalization_Collection): Remove Atomic for Finalization_Started.
	Add pragma Inline for Initialize.
	* libgnat/s-finpri.adb: Add clause for Ada.Unchecked_Conversion.
	(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
	(Detach_Node_From_Collection): ...here.
	(Attach_Object_To_Collection): New procedure.
	(Detach_Object_From_Collection): Likewise.
	(Finalization_Started): Delete.
	(Finalize): Replace allocation with attachment in comments.
	* libgnat/s-stposu.ads (Allocate_Any_Controlled): Rename parameter
	Context_Subpool into Named_Subpool, parameter Context_Collection
	into Collection and change it to In/Out, and remove Fin_Address.
	* libgnat/s-stposu.adb: Remove clause for Ada.Unchecked_Conversion
	and Finalization_Primitives.
	(To_Collection_Node_Ptr): Delete.
	(Allocate_Any_Controlled): Rename parameter Context_Subpool into
	Named_Subpool, parameter Context_Collection into Collection and
	change it to In/Out, and remove Fin_Address.  Do not lock/unlock
	and do not attach the object, instead only displace its address.
	(Deallocate_Any_Controlled): Do not lock/unlock and do not detach
	the object.
	(Header_Size_With_Padding): Use qualified name for Header_Size.

2024-05-14  Steve Baird  <baird@adacore.com>

	* exp_attr.adb (Build_And_Insert_Type_Attr_Subp): If a subprogram
	associated with a (library-level) type declared in another unit is
	to be inserted somewhere in a list, then insert it at the head of
	the list.
	* sem_ch5.adb (Analyze_Assignment): Normally a limited-type
	assignment is illegal. Relax this rule if Comes_From_Source is
	False and the type is not immutably limited.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* errout.ads (Error_Msg): Add node parameter.
	* errout.adb (Error_Msg): Add parameter and pass it to
	the underlying call.
	* sem_prag.adb (Validate_Compile_Time_Warning_Or_Error): Pass
	pragma node when emitting errors.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* styleg.ads (Check_Xtra_Parens_Precedence): Moved ...
	* style.ads (Check_Xtra_Parens_Precedence): ... here. Also
	replace corresponding renaming.
	* styleg.adb (Check_Xtra_Parens_Precedence): Moved ...
	* style.adb (Check_Xtra_Parens_Precedence): here. Also use
	Errout.Error_Msg and pass it a node parameter.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.ads (Convert_Aggr_In_Allocator): Rename Alloc into N,
	replace Decl with Temp and adjust description.
	(Convert_Aggr_In_Object_Decl): Alphabetize.
	(Is_Delayed_Aggregate): Likewise.
	* exp_aggr.adb (Convert_Aggr_In_Allocator): Rename Alloc into N
	and replace Decl with Temp.  Allocate a list only when neeeded.
	(Convert_Array_Aggr_In_Allocator): Replace N with Decl and insert
	new code before it.
	* exp_ch4.adb (Build_Aggregate_In_Place): New procedure nested in
	Expand_Allocator_Expression.
	(Expand_Allocator_Expression): Call it to build aggregates in place.
	Remove second parameter in calls to Build_Allocate_Deallocate_Proc.
	(Expand_N_Allocator): Likewise.
	* exp_ch13.adb (Expand_N_Free_Statement): Likewise.
	* exp_util.ads (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
	parameter.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove Is_Allocate
	parameter and replace it with local variable of same name.  Delete
	useless pattern matching.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* usage.adb (Usage): Fix enabled-by-default indicators.

2024-05-14  Philippe Gil  <gil@adacore.com>

	* libgnat/s-win32.ads (LocalFileTimeToFileTime): Swap parameters.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* restrict.adb (Violation_Of_No_Dependence): Tweak error
	reporting calls.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Adapt call to new signature.
	* erroutc.ads (Set_Specific_Warning_Off): change signature
	and update documentation.
	(Validate_Specific_Warnings): Move ...
	* errout.adb: ... here and change signature. Also move body
	of Validate_Specific_Warnings from erroutc.adb.
	(Finalize): Adapt call.
	* errout.ads (Set_Specific_Warning_Off): Adapt signature of
	renaming.
	* erroutc.adb (Set_Specific_Warning_Off): Adapt signature and
	body.
	(Validate_Specific_Warnings): Move to the body of Errout.
	(Warning_Specifically_Suppressed): Adapt body.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Build_Array_Aggr_Code): Pass N in the call to
	Build_Initialization_Call.
	(Build_Record_Aggr_Code): Likewise.
	(Convert_Aggr_In_Object_Decl): Likewise.
	(Initialize_Discriminants): Likewise.
	* exp_ch3.ads (Build_Initialization_Call): Replace Loc witn N.
	* exp_ch3.adb (Build_Array_Init_Proc): Pass N in the call to
	Build_Initialization_Call.
	(Build_Default_Initialization): Likewise.
	(Expand_N_Object_Declaration): Likewise.
	(Build_Initialization_Call): Replace Loc witn N parameter and add
	Loc local variable.  Build a default subtype for an allocator of
	a discriminated type with defaulted discriminants.
	(Build_Record_Init_Proc): Pass the declaration of components in the
	call to Build_Initialization_Call.
	* exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): Pass the
	allocator in the call to Build_Initialization_Call.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Fix typo.

2024-05-14  Gary Dismukes  <dismukes@adacore.com>

	* exp_util.adb (Find_Hook_Context): Exclude N_*Aggregate Nkinds
	of Parent (Par) from the early return in the second loop of the
	In_Cond_Expr case, to prevent returning an aggregate from this
	function rather than the enclosing declaration or statement.

2024-05-14  Steve Baird  <baird@adacore.com>

	* exp_attr.adb: Replace 6 "not Present" tests with equivalent calls to "No".

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): Examine the Expression
	field after the call to Default_Initialize_Object in order to set
	Is_Known_Null, as well as Is_Known_Non_Null, on an access object.

2024-05-14  Steve Baird  <baird@adacore.com>

	* exp_attr.adb: Change name of package Cached_Streaming_Ops to
	reflect the fact that it is now also used for Put_Image
	procedures. Similarly change other "Streaming_Op" names therein.
	Add Validate_Cached_Candidate procedure to detect case where a
	subprogram found in the cache cannot be reused. Add new generic
	procedure Build_And_Insert_Type_Attr_Subp; the "Build" part is
	handled by just calling a formal procedure; the bulk of this
	(generic) procedure's code has to with deciding where in the tree
	to insert the newly-constructed subprogram. Replace each later
	"Build" call (and the following Insert_Action or
	Compile_Stream_Body_In_Scope call) with a declare block that
	instantiates and then calls this generic procedure. Delete the
	now-unused procedure Compile_Stream_Body_In_Scope. A constructed
	subprogram is entered in the appropriate cache if the
	corresponding type is untagged; this replaces more complex tests.
	A new function Interunit_Ref_OK is added to determine whether an
	attribute reference occuring in one unit can safely refer to a
	cached subprogram declared in another unit.
	* exp_ch3.adb (Build_Predefined_Primitive_Bodies): A formal
	parameter was deleted, so delete the corresponding actual in a
	call.
	* exp_put_image.adb (Build_Array_Put_Image_Procedure): Because the
	procedure being built may be referenced more than once, the
	generated procedure takes its source position info from the type
	declaration instead of the (first) attribute reference.
	(Build_Record_Put_Image_Procedure): Likewise.
	* exp_put_image.ads (Build_Array_Put_Image_Procedure): Eliminate
	now-unused Nod parameter.
	(Build_Record_Put_Image_Procedure): Eliminate now-unused Loc parameter.
	* sem_ch3.adb (Constrain_Discriminated_Type): For declaring a
	subtype with a discriminant constraint, ignore privacy if
	Comes_From_Source is false (as is already done if Is_Instance is
	true).
	* sem_res.adb (Resolve): When passed two type entities that have
	the same underlying base type, Sem_Type.Covers may return False in
	some cases because of privacy. [This can happen even if
	Is_Private_Type returns False both for Etype (N) and for Typ;
	Covers calls Base_Type, which can take a non-private argument and
	yield a private result.] If Comes_From_Source (N) is False
	(e.g., for a compiler-generated Put_Image or streaming subprogram), then
	avoid that scenario by not calling Covers. Covers already has tests for
	doing this sort of thing (see the calls therein to Full_View_Covers),
	but the Comes_From_Source test is too coarse to apply there. So instead
	we handle the problem here at the call site.
	(Original_Implementation_Base_Type): A new function. Same as
	Implementation_Base_Type except if the Original_Node attribute of
	a non-derived type declaration indicates that it once was a derived
	type declaration. Needed for looking through privacy.
	(Valid Conversion): Ignore privacy when converting between different views
	of the same type if Comes_From_Source is False for the conversion.
	(Valid_Tagged_Conversion): An ancestor-to-descendant conversion is not an
	illegal downward conversion if there is no type extension involved
	(because the derivation was from an untagged view of the parent type).

2024-05-14  Steve Baird  <baird@adacore.com>

	* sem_ch5.adb (Analyze_Case_Statement): Emit a message and return
	early in the case where general case statements are allowed but
	the selector expression is of a private type. This is done to
	avoid a bugbox.

2024-05-14  Justin Squirek  <squirek@adacore.com>

	* sem_util.adb (Set_Referenced_Modified): Use Original_Node to
	avoid recursive calls on expanded / internal objects such that
	source nodes get appropriately marked as referenced.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* sem_warn.adb (Warn_On_Overlapping_Actuals): Stop ignoring
	warning suppression settings.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_util.adb (Build_Allocate_Deallocate_Proc): Pass the alignment
	parameter in the inner call for a secondary stack allocation too.

2024-05-14  Javier Miranda  <miranda@adacore.com>

	* sem_ch10.adb (Install_Inherited_Policy_Pragmas): New subprogram.
	(Remove_Inherited_Policy_Pragmas): New subprogram.
	(Analyze_Compilation_Unit): Call the new subprograms to
	install and remove inherited assertion policy pragmas.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch4.adb (Expand_N_If_Expression): Set No_Initialization on the
	declaration of the temporary in the by-reference case.
	* exp_util.adb (Initialized_By_Access): Delete.
	(Is_Allocated): Likewise.
	(Initialized_By_Reference): New predicate.
	(Is_Finalizable_Transient): If the transient object is of an access
	type, do not return true unless it is initialized by a reference.

2024-05-14  Steve Baird  <baird@adacore.com>

	* exp_attr.adb:	Move computation of Accum_Typ entirely into the
	function Build_Stat.

2024-05-14  Steve Baird  <baird@adacore.com>

	* sem_ch12.ads: Declare new Instance_Context package, which
	declares a private type Context with operations Save_And_Reset and
	Restore.
	* sem_ch12.adb: Provide body for new Instance_Context package.
	* rtsfind.adb (Load_RTU): Wrap an Instance_Context Save/Restore
	call pair around the call to Semantics.
	* table.ads: Add initial value for Last_Val (because
	Save_And_Reset expects Last_Val to be initialized).

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_aggr.adb (Build_Record_Aggr_Code): Replace reference to
	Build_Task_Allocate_Block_With_Init_Stmts in comment with reference
	to Build_Task_Allocate_Block.
	(Convert_Aggr_In_Allocator): Likewise for the call in the code.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Likewise.
	* exp_ch3.ads: Alphabetize clauses.
	(Build_Default_Initialization): New function declaration.
	(Build_Default_Simple_Initialization): Likewise.
	(Build_Initialization_Call): Add Target_Ref parameter with default.
	* exp_ch3.adb (Build_Default_Initialization): New function extracted
	from...
	(Build_Default_Simple_Initialization): Likewise.
	(Build_Initialization_Call): Add Target_Ref parameter with default.
	(Expand_N_Object_Declaration): ...here.
	(Default_Initialize_Object): Call Build_Default_Initialization and
	Build_Default_Simple_Initialization.
	* exp_ch4.adb (Expand_Allocator_Expression): Minor comment tweaks.
	(Expand_N_Allocator): Call Build_Default_Initialization and
	Build_Default_Simple_Initialization to implement the default
	initialization of the allocated object.
	* exp_ch9.ads (Build_Task_Allocate_Block): Delete.
	(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
	(Build_Task_Allocate_Block): ...this.
	* exp_ch9.adb: Remove clauses for Exp_Tss.
	(Build_Task_Allocate_Block): Delete.
	(Build_Task_Allocate_Block_With_Init_Stmts): Rename into...
	(Build_Task_Allocate_Block): ...this.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Remove unnecessary
	initialization expression, adjust commentary and replace early exit
	with assertion.
	* sem_ch4.adb (Analyze_Allocator): In the null-exclusion case, call
	Apply_Compile_Time_Constraint_Error to insert the raise.

2024-05-14  Ronan Desplanques  <desplanques@adacore.com>

	* styleg.ads (Check_Boolean_Operator): Moved ...
	* style.ads (Check_Boolean_Operator): ... here.
	* styleg.adb (Check_Boolean_Operator): Moved ...
	* style.adb (Check_Boolean_Operator): ... here. Also add node
	parameter to call to Errout.Error_Msg.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* sprint.adb (Sprint_Node_Actual) <N_Raise_Statement>: Be prepared
	for an empty Name.
	<N_Raise_When_Statement>: Likewise.

2024-05-14  Yannick Moy  <moy@adacore.com>

	* contracts.adb: Fix references to SPARK RM rules.
	* freeze.adb: Same.
	* ghost.adb: Fix references to SPARK RM rules.
	(Check_Ghost_Context): Update checking of references to
	ghost entities in assertion expressions.
	* sem_ch6.adb: Fix references to SPARK RM rules.
	* sem_prag.adb: Same.

2024-05-14  Yannick Moy  <moy@adacore.com>

	* ghost.adb (Mark_And_Set_Ghost_Instantiation): Fix the current
	Ghost policy for the instantiation.

2024-05-14  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Default_Initialize_Object): Return immediately when
	either Has_Init_Expression or No_Initialization is set on the node.
	Tidy up the rest of the code accordingly.
	(Simple_Initialization_OK): Do not test Has_Init_Expression here.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* accessibility.adb: Remove clauses for Exp_Ch3.
	* exp_ch3.ads (Init_Proc_Level_Formal): Move declaration to...
	* exp_ch3.adb (Init_Proc_Level_Formal): Move body to...
	* exp_util.ads (Init_Proc_Level_Formal): ...here.
	(Inside_Init_Proc): Alphabetize.
	* exp_util.adb (Init_Proc_Level_Formal): ...here.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Is_Potentially_Unevaluated): Remove code for
	recovering the original structure of expressions with AND THEN.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Attribute_22): Remove Put_Image and Object_Size.
	* sem_attr.ads (Attribute_Imp_Def): Restore Object_Size.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb: Adjust the description of finalization management.
	(Build_Finalizer): Rename scope master into master throughout.
	* rtsfind.ads (RE_Id): Replace RE_Finalization_Scope_Master with
	RE_Finalization_Master.
	(RE_Unit_Table): Replace entry for RE_Finalization_Scope_Master with
	entry for RE_Finalization_Master.
	* libgnat/s-finpri.ads (Finalization_Scope_Master): Rename into...
	(Finalization_Master): ...this.
	(Attach_Object_To_Master): Adjust to above renaming.
	(Chain_Node_To_Master): Likewise.
	(Finalize_Master): Likewise.
	* libgnat/s-finpri.adb (Attach_Object_To_Master): Likewise.
	(Chain_Node_To_Master): Likewise.
	(Finalize_Master): Likewise.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-imaged.ads (System.Image_D): Add Uns formal parameter.
	* libgnat/s-imaged.adb: Add with clauses for System.Image_I,
	System.Value_I_Spec and System.Value_U_Spec.
	(Uns_Spec): New instance of System.Value_U_Spec.
	(Int_Spec): New instance of System.Value_I_Spec.
	(Image_I): New instance of System.Image_I.
	(Set_Image_Integer): New renaming.
	(Set_Image_Decimal): Replace 'Image with call to Set_Image_Integer.
	* libgnat/s-imde32.ads (Uns32): New subtype.
	(Impl): Pass Uns32 as second actual paramter to Image_D.
	* libgnat/s-imde64.ads (Uns64): New subtype.
	(Impl): Pass Uns64 as second actual paramter to Image_D.
	* libgnat/s-imde128.ads (Uns128): New subtype.
	(Impl): Pass Uns128 as second actual paramter to Image_D.
	* libgnat/s-imagef.adb (Set_Image_Fixed): Document bounds for the
	A, D and AF local constants.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Attribute_22): Add Put_Image and Object_Size.
	* sem_attr.ads (Attribute_Imp_Def): Remove Object_Size.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* aspects.adb (Copy_Aspects): Style fix.
	* contracts.adb (Analyze_Contracts): Style fix.
	(Save_Global_References_In_Contract): Remove extra guards.
	* par_sco.adb (Traverse_Aspects): Move guard to the caller and
	make it consistent with Save_Global_References_In_Contract.
	* sem_ch12.adb (Has_Contracts): Remove extra guards.
	* sem_ch3.adb (Delayed_Aspect_Present, Get_Partial_View_Aspect,
	Check_Duplicate_Aspects): Likewise.
	* sem_disp.adb (Check_Dispatching_Operation): Likewise.

2024-05-13  Bob Duff  <duff@adacore.com>

	* errout.adb (Output_Messages): Protect against the total going
	negative.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Append_Enabled_Item): Remove use of Split_PPC;
	simplify.
	* gen_il-fields.ads (Opt_Field_Enum): Remove flag definition.
	* gen_il-gen-gen_nodes.adb (N_Aspect_Specification, N_Pragma):
	Remove Split_PPC flags.
	* gen_il-internals.adb (Image): Remove use of Split_PPC.
	* par_sco.adb (Traverse_Aspects): Likewise.
	* sem_ch13.adb (Make_Aitem_Pragma): Likewise.
	* sem_ch6.adb (List_Inherited_Pre_Post_Aspects): Likewise.
	* sem_prag.adb (Analyze_Pre_Post_Condition, Analyze_Pragma,
	Find_Related_Declaration_Or_Body): Likewise.
	* sem_util.adb (Applied_On_Conjunct): Likewise.
	* sinfo.ads: Remove flag documentation.
	* treepr.adb (Image): Remove use of Split_PPC.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch6.adb (Append_Message): Build the location string from
	scratch and not rely on the one produced while splitting the
	aspect into pragmas.
	* exp_prag.adb (Expand_Pragma_Check): Split pre/post checks in
	expansion.
	* sem_ch13.adb (Analyze_Aspect_Specification): Don't split
	pre/post expressions into conjuncts; don't add message with
	location to the corresponding pragma.
	* sem_prag.adb (Build_Pragma_Check_Equivalent): Inherited
	pragmas no longer have messages that would need to be updated.
	* sinput.adb (Build_Location_String): Adjust to keep previous
	messages while using with inherited pragmas.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* contracts.adb (Inherit_Subprogram_Contract): Fix style.
	* sem_ch5.adb (Analyze_Iterator_Specification): Likewise.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Has_No_Output): Iteration with
	First_Formal/Next_Formal involves Entity_Ids.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Pragma): When processing pragma
	Lock_Free, check if restriction No_Implementation_Pragmas is
	enabled.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* gen_il-fields.ads (Opt_Field_Enum):
	Remove Is_Expanded_Contract from the list of flags.
	* gen_il-gen-gen_nodes.adb (N_Contract): Remove
	Is_Expanded_Contract from the list of N_Contract fields.
	* sinfo.ads (Is_Expanded_Contract): Remove comments for the flag
	and its single occurrence in N_Contract.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Protected_Subprogram_Body,
	Build_Protected_Subprogram_Call_Cleanup): Reuse refactored
	routine.
	* sem_util.adb
	(Has_Enabled_Aspect): Refactored repeated code.
	(Is_Static_Function): Reuse refactored routine.
	* sem_util.ads (Has_Enabled_Aspect):
	New query routine refactored from repeated code.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch9.adb (Build_Protected_Subprogram_Call_Cleanup): If
	aspect Exclusive_Functions is present then the cleanup of a
	protected function now services queued entries, just like the
	cleanup of a protected procedure.

2024-05-13  Bob Duff  <duff@adacore.com>

	* sem_util.ads (Append_Entity_Name): Fix comment to reflect new
	semantics. The comment said, "The qualification stops at an
	enclosing scope has no source name (block or loop)." There seems
	to be no reason for stopping; instead, we should SKIP things with
	no source name. And the "loop" part was wrong.
	* sem_util.adb (Append_Entity_Name): Do not stop the recursion;
	skip to next-outer scope instead. Misc cleanup/simplification.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.adb (Finalize): Replace "master" by "collection"
	in comments and add a comment about the form of the loop.
	* libgnat/s-stposu.adb (Allocate_Any_Controlled): Tweak comment.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Remove s-finmas$(objext).
	* einfo.ads (Anonymous_Masters): Rename into Anonymous_Collections.
	(Finalization_Master): Rename into Finalization_Collection.
	* gen_il-fields.ads (Opt_Field_Enum): Replace Anonymous_Masters
	with Anonymous_Collections; and Finalization_Master with
	Finalization_Collection.
	* gen_il-gen-gen_entities.adb (Access_Kind): Likewise.
	(E_Function): Likewise.
	(E_Procedure): Likewise.
	(E_Package): Likewise.
	(E_Subprogram_Body): Likewise.
	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Adjust to renamings.
	(Freeze_Type): Likewise.
	(Stream_Operation_OK): Remove obsolete test.
	* exp_ch4.adb (Expand_Allocator_Expression): Adjust to renamings.
	(Expand_N_Allocator): Likewise.
	* exp_ch6.ads (BIP_Formal_Kind): Replace BIP_Finalization_Master
	with BIP_Collection.
	(Needs_BIP_Finalization_Master): Rename into...
	(Needs_BIP_Collection): ...this.
	* exp_ch6.adb (BIP_Finalization_Master_Suffix): Delete.
	(BIP_Collection_Suffix): New constant string.
	(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Rename to
	(Add_Collection_Actual_To_Build_In_Place_Call): ...this and adjust.
	(BIP_Formal_Suffix): Replace BIP_Finalization_Master alternative
	with BIP_Collection alternative.
	(BIP_Suffix_Kind): Replace test on BIP_Finalization_Master_Suffix
	with test on BIP_Collection_Suffix.
	(Is_Build_In_Place_Entity): Likewise.
	(Make_Build_In_Place_Call_In_Allocator): Call Needs_BIP_Collection
	and Add_Collection_Actual_To_Build_In_Place_Call.
	(Make_Build_In_Place_Call_In_Anonymous_Context): Likewise.
	(Make_Build_In_Place_Call_In_Assignment): Likewise.
	(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
	(Needs_BIP_Finalization_Master): Rename into...
	(Needs_BIP_Collection): ...this.
	(Needs_BIP_Alloc_Form): Call Needs_BIP_Collection.
	* exp_ch7.ads (Build_Anonymous_Master): Rename into...
	(Build_Anonymous_Collection): ...this.
	(Build_Finalization_Master): Rename into...
	(Build_Finalization_Collection): ...this.
	* exp_ch7.adb (Allows_Finalization_Master): Rename into...
	(Allows_Finalization_Collection): ...this.
	(Build_BIP_Cleanup_Stmts): Adjust to renamings.
	(Build_Anonymous_Master): Rename into...
	(Build_Anonymous_Collection): ...this.  Adjust to renamings.
	(Build_Finalization_Master): Rename into...
	(Build_Finalization_Collection): ...this.  Adjust to renamings.
	(Build_Finalizer): Adjust comment to renamings.
	* exp_ch13.adb (Expand_N_Free_Statement): Adjust to renamings.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Likewise.
	(Requires_Cleanup_Actions): Adjust comment to renamings.
	* freeze.adb (Freeze_All): Likewise.
	* rtsfind.ads (RTU_Id): Remove System_Finalization_Masters.
	(RE_Id): Remove RE_Finalization_Master & RE_Finalization_Master_Ptr
	add RE_Finalization_Collection & RE_Finalization_Collection_Ptr.
	Adjust RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
	(RE_Unit_Table): Remove entries for RE_Finalization_Master &
	RE_Finalization_Master_Ptr, add ones for RE_Finalization_Collection
	& RE_Finalization_Collection_Ptr.  Also adjust those of
	RE_Add_Offset_To_Address and RE_Finalization_Scope_Master.
	* sem_ch3.adb (Access_Type_Declaration): Adjust to renamings.
	* sem_ch6.adb (Create_Extra_Formals): Likewise.
	* sem_util.adb (Designated_Subtype_Mark): Likewise.
	* libgnat/s-finpri.ads: Add clauses for Ada.Finalization and
	System.Storage_Elements.
	(Finalization_Collection): New limited controlled type.
	(Finalization_Collection_Ptr): Likewise.
	(Initialize): New overriding procedure.
	(Finalize): Likewise.
	(Finalization_Started): Likewise.
	(Collection_Node): New type.
	(Collection_Node_Ptr): Likewise.
	(Attach_Node_To_Collection): New procedure.
	(Detach_Node_From_Collection): Likewise.
	(Header_Size): New function.
	(Add_Offset_To_Address): Likewise.
	* libgnat/s-finpri.adb (Add_Offset_To_Address): New function.
	(Attach_Node_To_Collection): New procedure.
	(Detach_Node_From_Collection): Likewise.
	(Finalization_Started): Likewise.
	(Finalize): New overriding procedure.
	(Header_Size): New function.
	(Initialize): New overriding procedure.
	* libgnat/s-spsufi.ads (Finalize_And_Deallocate): Adjust comment.
	* libgnat/s-spsufi.adb: Remove clause for Finalization_Masters and
	add clause for Finalization_Primitives.
	(Finalize_And_Deallocate): Finalize the Collection component.
	* libgnat/s-stposu.ads: Remove clause for Finalization_Masters and
	add clause for Finalization_Primitives.
	(Root_Subpool): Replace Master component with Collection.
	(Allocate_Any_Controlled): Replace Context_Master parameter with
	Context_Collection parameter.
	* libgnat/s-stposu.adb: Remove clauses for Finalization_Masters and
	add clauses for Finalization_Primitives.
	(Address_To_FM_Node_Ptr): Delete.
	(To_Collection_Node_Ptr): New instance of Ada.Unchecked_Conversion.
	(Adjust_Controlled_Dereference): Adjust comment to renamings.
	(Allocate_Any_Controlled): Replace Context_Master parameter with
	Context_Collection parameter.  Adjust to renamings.
	(Deallocate_Any_Controlled): Adjust to renamings.
	(Print_Subpool): Likewise.
	* libgnat/s-finmas.ads: Delete.
	* libgnat/s-finmas.adb: Likewise.

2024-05-13  Ashley Gay  <gay@adacore.com>

	* Makefile.rtl: remove i-vxinco.* from the build
	* doc/gnat_rm/the_gnat_library.rst: Remove i-vxinco.ads from
	the units documentation.
	* impunit.adb: Remove i-vxinco from the list of available units
	in GNATstudio.
	* libgnarl/i-vxinco.adb: Remove.
	* libgnarl/i-vxinco.ads: Ditto.
	* libgnarl/s-interr__vxworks.adb: enrich comment
	* libgnarl/s-vxwext__kernel.ads: fix comment
	* libgnat/i-vxwork.ads: Remove deprecated interrupt connections
	API, as well as an example.
	* libgnat/i-vxwork__x86.ads: Ditto and add the paragma
	Obscolescent to Attach_Handler
	* gnat_rm.texi: Regenerate.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Build_Heap_Or_Pool_Allocator): Use the BIPstoragepool
	formal parameter to retrieve the pool in the presence of a master.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Always pass
	a pool reference along with the master reference.
	(Make_Build_In_Place_Call_In_Object_Declaration): Likewise.
	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Use the BIPstoragepool
	formal parameter to retrieve the pool in the presence of a master.
	(Create_Anonymous_Master): Do not call Set_Base_Pool.
	(Build_Finalization_Master): Likewise.
	* rtsfind.ads (RE_Id): Remove RE_Base_Pool and RE_Set_Base_Pool.
	(RE_Unit_Table): Remove associated entries.
	* libgnat/s-finmas.ads: Remove clause for System.Storage_Pools.
	(Any_Storage_Pool_Ptr): Delete.
	(Finalization_Master): Remove Base_Pool component.
	(Base_Pool): Delete.
	(Set_Base_Pool): Likewise.
	* libgnat/s-finmas.adb (Base_Pool): Likewise.
	(Set_Base_Pool): Likewise.
	(Print_Master): Do not print Base_Pool.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch6.adb (Add_Unconstrained_Actuals_To_Build_In_Place_Call):
	Rename Pool_Actual into Pool_Exp and use Empty as default value.
	(Add_Finalization_Master_Actual_To_Build_In_Place_Call): Change the
	names of the first two parameters and use a simpler code structure.
	(Make_Build_In_Place_Call_In_Allocator): Rename the local variable
	for the pool actual and set it to Empty if it is not used.
	(Make_Build_In_Place_Call_In_Object_Declaration): Rename the local
	variable for the master actual.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_N_Object_Declaration): In the case of a
	return object of a BIP function that needs finalization, save
	the assignment statement made to initialize it, if any.
	* exp_ch6.ads (BIP_Formal_Kind): Adjust description.
	* exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Make a
	couple of adjustments to the commentary.
	(Needs_BIP_Alloc_Form): Also return true if the function needs
	a BIP_Finalization_Master parameter.
	* exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove now always true
	test on Needs_BIP_Alloc_Form.
	(Attach_Object_To_Master_Node): Remove duplication in comment.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Get_Index_Bounds): Guard against missing Entity,
	which happens on illegal constrained type declaration.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Eval_Attribute): Treat Alignment like Component_Size
	for array types.

2024-05-13  Steve Baird  <baird@adacore.com>

	* sem_case.adb: Replace all tests of Core_Extensions_Allowed with
	corresponding tests of All_Extensions_Allowed.
	* sem_ch5.adb: Likewise.
	* doc/gnat_rm/gnat_language_extensions.rst: update documentation.
	* gnat_rm.texi: Regenerate.

2024-05-13  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch13.adb (New_Put_Image_Subprogram): In the nondeferred case
	coming from an aspect and for a type with delaying freezing, also
	freeze the subprogram immediately.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-direct.adb (Start_Search_Internal): Combine subtype
	and object declaration.
	* libgnat/g-dirope.adb (Read): Replace convoluted unchecked
	conversion with an overlay.

2024-05-13  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/g-dirope.adb (Read): Use null-excluding,
	access-to-constant type; replace element-by-element copy with
	array assignments.

2024-05-13  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate): Move determination of
	whether the aggregate is an indexed aggregate earlier in the
	procedure. Test Is_Indexed_Aggregate as a criterion for generating
	a call to the container type's New_Indexed function, add proper
	computation of bounds to pass in to the function, and remove later
	code for generating such a call. Add and improve comments.
	(Aggregate_Size): Remove special treatment of case where there is
	exactly one component association, and instead loop over all
	component associations to determine whether any of them have a
	nonstatic length. If there is at least one such nonstatic
	association, return -1.
	(Build_Siz_Exp): Accumulate a sum of the sizes of each of the
	component associations in Siz_Exp (which will only be used if
	there any associations that are of Nkind
	N_Iterated_Component_Association with a nonstatic range).
	(Expand_Range_Component): Fix typos in the procedure's spec
	comment and block comment.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Number_Of_Elements_In_Array): Fix counting of
	elements in null arrays; remove redundant parenthesis; avoid
	run-time conversion of 1 to universal integer.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* lib.ads, lib.adb (Primary_Stack_Count, Sec_Stack_Count,
	Increment_Primary_Stack_Count, Increment_Sec_Stack_Count,
	Unit_Record): Stack counts are never negative.
	* ali.ads (Unit_Record): Likewise.
	* bindgen.adb (Num_Primary_Stacks, Num_Sec_Stacks): Likewise.
	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Likewise.
	* sem_util.ads, sem_util.adb (Number_Of_Elements_In_Array):
	Likewise.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch3.adb (Count_Default_Sized_Task_Stacks): Do not look for
	tasks inside record discriminants; remove avoid repeated call to
	Has_Task that happened for record components.
	(Expand_N_Object_Declaration): Use high-level routine to detect
	array types and subtypes; remove unused initial values.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_aggr.ads (Static_Array_Aggregate): Fix typo in comment.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Has_Single_Return): Remove redundant check for
	empty list, because First works also for empty list.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* exp_ch4.adb (Useful): Remove redundant check for empty list,
	because iteration with First works also for empty list; rename
	local variable from L to Action.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Has_Formal_With_Per_Object_Constrained_Component):
	Use flag Has_Per_Object_Constraint which is set by analysis;
	rename for consistency.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Replace loop with
	Current_Scope_No_Loops.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Move code to IF
	branch where its result is used.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_attr.adb (Analyze_Access_Attribute): Prevent search from
	going too far.
	* sem_ch3.adb (Analyze_Component_Declaration): Remove
	Contains_POC; reuse Has_Discriminant_Dependent_Constraint.

2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Pending_Access_Types): Delete.
	* exp_ch3.adb (Freeze_Type.Process_Pending_Access_Types): Likewise.
	(Freeze_Type): Do not call Process_Pending_Access_Types.
	* exp_ch7.ads (Make_Set_Finalize_Address_Call): Delete.
	* exp_ch7.adb (Build_Finalization_Master.Add_Pending_Access_Type):
	Delete.
	(Build_Finalization_Master): Do not set Finalize_Address on the
	master or call Add_Pending_Access_Type.
	(Make_Set_Finalize_Address_Call): Delete.
	* gen_il-fields.ads (Opt_Field_Enum): Remove Pending_Access_Types.
	* gen_il-gen-gen_entities.adb (Type_Kind): Likewise.
	* rtsfind.ads (RE_Id): Remove RE_Set_Finalize_Address.
	(RE_Unit_Table): Likewise.
	* sem_ch3.adb (Analyze_Full_Type_Declaration): Do not deal with
	pending access types.
	* libgnat/s-finmas.ads (Attach_Unprotected): Add Finalize_Address
	second parameter.
	(Delete_Finalize_Address_Unprotected): Delete.
	(Finalize_Address): Likewise.
	(Finalize_Address_Unprotected): Likewise.
	(Is_Homogeneous): Likewise.
	(Set_Finalize_Address): Likewise.
	(Set_Finalize_Address_Unprotected): Likewise.
	(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
	(Set_Is_Heterogeneous): Likewise.
	(FM_Node): Add Finalize_Address component.
	(Finalization_Master): Remove Is_Homogeneous and Finalize_Address
	components.
	* libgnat/s-finmas.adb: Remove with & use clauses for System.HTable.
	(Finalize_Address_Table): Delete.
	(Attach_Unprotected): Add Finalize_Address second parameter and save
	its value in the Finalize_Address field of the node.
	(Delete_Finalize_Address_Unprotected): Delete.
	(Finalize): Call Finalize_Address saved in the nodes.
	(Finalize_Address): Delete.
	(Finalize_Address_Unprotected): Likewise.
	(Hash): Likewise.
	(Is_Homogeneous): Likewise.
	(Print_Master): Adjust.
	(Set_Finalize_Address): Delete.
	(Set_Finalize_Address_Unprotected): Likewise.
	(Set_Heterogeneous_Finalize_Address_Unprotected): Likewise.
	(Set_Is_Heterogeneous): Likewise.
	* libgnat/s-stposu.adb (Finalize_Address_Table_In_Use): Likewise.
	(Allocate_Any_Controlled): Pass Fin_Address to Attach_Unprotected
	and remove obsolete processing.
	(Deallocate_Any_Controlled): Remove obsolete processing.
	(Set_Pool_Of_Subpool): Do not call Set_Is_Heterogeneous.

2024-05-07  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/a-ngelfu.ads (Sqrt): Add Global contracts.
	(Log): Likewise.
	(Exp): Likewise.
	("**"): Likewise.
	(Sin): Likewise.
	(Cos): Likewise.
	(Tan): Likewise.
	(Cot): Likewise.
	(Arcsin): Likewise.
	(Arccos): Likewise.
	(Arctan): Likewise.
	(Arccot): Likewise.
	(Sinh): Likewise.
	(Cosh): Likewise.
	(Tanh): Likewise.
	(Coth): Likewise.
	(Arcsinh): Likewise.
	(Arccosh): Likewise.
	(Arctanh): Likewise.
	(Arccoth): Likewise.

2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Postconditions_Proc): Delete.
	* gen_il-fields.ads (Opt_Field_Enum): Remove Postconditions_Proc.
	* gen_il-gen-gen_entities.adb (E_Function): Likewise.
	(E_Procedure): Likewise.
	(E_Entry): Likewise.
	(E_Entry_Family): Likewise.

2024-05-07  Ronan Desplanques  <desplanques@adacore.com>

	* sinfo.ads: Fix typo.

2024-05-07  Bob Duff  <duff@adacore.com>

	* exp_attr.adb (Attribute_Old): The 'Old attribute we are
	processing here is in a postcondition, which cannot be inside the
	"Wrapped_Statements" of the subprogram with that postcondition. So
	remove the loop labeled "Climb the parent chain looking for
	subprogram _Wrapped_Statements". The only way this loop could find
	a Subp is if we are nested inside a subprogram that also has a
	postcondition, and in that case we would find the wrong (outer)
	one. In any case, Subp is set to Empty after the loop, so all
	subsequent tests for Present (Subp) are necessarily False; remove
	them and the corresponding code. Set Ins_Node unconditionally (to
	the right thing). Remove obsolete comments.
	* sem_util.adb (Determining_Expressions): Fix assertion;
	Pragma_Test_Case was missing.
	(Eligible_For_Conditional_Evaluation): Fix assert that could fail
	in case of errors.
	* libgnat/s-valspe.ads: Remove pragma Unevaluated_Use_Of_Old;
	there are no uses of 'Old in this package.

2024-05-07  Yannick Moy  <moy@adacore.com>

	* libgnat/a-strsea.adb (Index): Add assertions.
	* libgnat/a-strsup.ads ("="): Remove useless precondition.
	* libgnat/s-aridou.adb (Prove_Rounding_Case): Add assertions.
	(Lemma_Shift_Right): Add call to lemma.
	* libgnat/s-arit32.adb (Prove_Rounding_Case): Add assertion.
	(Prove_ Signs): Add assertions.
	(Scaled_Divide32): Add assertions.

2024-05-07  Steve Baird  <baird@adacore.com>

	* sem_prag.adb (Analyze_Pragma): Restructure the loop over
	possible resolutions of a No_Return pragma's argument so that
	functions (and generic functions) are not processed until after it
	is known whether there is a non-function candidate resolution. For
	a pre-2022 Ada version, terminate the iteration before processing
	functions if a non-function resolution is found.

2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/g-socthi.ads (C_Bind): Turn into inline function.
	(C_Getpeername): Likewise.
	(C_Getsockname): Likewise.
	(C_Getsockopt): Likewise.
	(C_Setsockopt): Likewise.
	(Nonreentrant_Gethostbyaddr): Likewise.
	* libgnat/g-socthi.adb (Syscall_Accept): Adjust profile.
	(Syscall_Connect): Likewise.
	(Syscall_Recvfrom): Likewise.
	(Syscall_Sendto): Likewise.
	(C_Bind): New function.
	(C_Accept): Adjust to above change for profiles.
	(C_Connect): Likewise.
	(C_Getpeername): New function.
	(C_Getsockname): Likewise.
	(C_Getsockopt): Likewise.
	(C_Recvfrom):  Adjust to above change for profiles.
	(C_Setsockopt): New function.
	(Nonreentrant_Gethostbyaddr): Likewise.

2024-05-07  Bob Duff  <duff@adacore.com>

	* par-ch3.adb (P_Component_Items): Move P_Aspect_Specifications
	into the loop, so aspects can be attached to multiple component
	declarations.
	(P_Type_Declaration, P_Subtype_Declaration)
	(P_Known_Discriminant_Part_Opt): Remove default for Semicolon in
	calls to P_Aspect_Specifications.
	* gen_il-gen-gen_nodes.adb (N_Discriminant_Specification): Add
	Aspect_Specifications field to N_Discriminant_Specification, which
	was missing.
	* aspects.adb (Has_Aspect_Specifications_Flag): Make it True for
	N_Discriminant_Specification.
	* par-ch13.adb: Remove default for Semicolon in calls to
	P_Aspect_Specifications.
	(Get_Aspect_Specifications): Misc cleanup.
	(P_Aspect_Specifications): Remove comment. It's not clear what
	"the flag" is referring to, but anyway the first part of the
	comment is obvious, and the second part is apparently obsolete.
	Misc cleanup.
	* par.adb (P_Aspect_Specifications, Get_Aspect_Specifications):
	Remove default for Semicolon; calls are more readable that way.
	Improve comments.
	* par-ch12.adb: Remove default for Semicolon in calls to
	P_Aspect_Specifications.
	* par-ch6.adb: Likewise.
	* par-ch7.adb: Likewise.
	* par-ch9.adb: Likewise.
	* par-endh.adb: Likewise.

2024-05-07  Justin Squirek  <squirek@adacore.com>

	* sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): Better
	handle itypes such that the tree copy required for the expansion
	of the pragma doesn't cause ordering problems with internal names.

2024-05-07  Yannick Moy  <moy@adacore.com>

	* sem_res.adb (Resolve_Actuals): Add range check flag.

2024-05-07  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Find_Placement_In_State_Space): Stop search for
	placement when reaching the public state of a generic package.

2024-05-07  Javier Miranda  <miranda@adacore.com>

	* sem_ch3.adb (Check_Return_Subtype_Indication): Add missing check
	on statically compatible subtypes.
	* sem_eval.adb (Subtypes_Statically_Compatible): Ensure that both
	types are either scalar types or access types to evaluate this
	predicate.

2024-05-07  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Resolve_Name): Clarify comment.

2024-05-07  Bob Duff  <duff@adacore.com>

	* sem_ch13.adb (Resolve_Name): This is called only for names in
	aspect_specifications. If the name is an overloaded
	selected_component, reset the Entity. Note that this was already
	done for N_Identifier in the code just below.

2024-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Record_Info.List_Structural_Record_Layout): Add
	another guard for private types after retrieving the parent in the
	extension case.

2024-05-07  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Is_Volatile_Function): Return True on functions
	with side effects.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Analyze_Global_Item): Handle side-effect
	functions like procedures.

2024-05-07  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Collect_Global_Item): Update comment.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Collect_Global_Item): Handle functions with
	side-effects.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Collect_Global_Item): Move code.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* sem_prag.adb (Find_Role): Handle functions with side-effects
	like procedures.

2024-05-06  Gary Dismukes  <dismukes@adacore.com>

	* exp_ch6.adb
	(Make_Build_In_Place_Iface_Call_In_Object_Declaration): Set the
	Is_Return_Object flag on the entity of the temp object created to
	hold the BIP call result, from the flag on the passed-in object
	declaration's entity. Update copyright notice to 2024.

2024-05-06  Bob Duff  <duff@adacore.com>

	* sem_ch10.adb (Expand_With_Clause): Misc cleanup.
	(Install_Private_With_Clauses): Avoid installing a private
	with_clause that comes from an instantiated generic
	(it is marked as Implicit_With, but doesn't come from a parent
	with). Fix typo in comment, and other minor cleanups.

2024-05-06  Ronan Desplanques  <desplanques@adacore.com>

	* sem_util.adb (Build_Default_Subtype): Tweak source location
	information.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Build_Finalizer.Process_Declarations): Do not call
	Processing_Actions for simple protected objects if the profile is
	restricted.
	* exp_util.adb (Requires_Cleanup_Actions): Do not return True for
	simple protected objects if the profile is restricted.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* fe.h: Remove unused declarations and add 'extern' to others.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* einfo-utils.adb (Is_Relaxed_Initialization_State): Remove.
	* einfo-utils.ads (Is_Relaxed_Initialization_State): Remove.
	* einfo.ads: Remove description of removed aspect.
	* fe.h (Is_Relaxed_Initialization_State): Remove.
	* sem_prag.adb (Analyze_Abstract_State): Remove support for
	Relaxed_Initialization.
	* sem_util.adb (Has_Relaxed_Initialization): Likewise.
	* sem_util.ads (Has_Relaxed_Initialization): Likewise.

2024-05-06  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Within_Postcondition): Add coverage for
	Preconditions

2024-05-06  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Within_Postcondition): Add/modify comments to
	document various cases.

2024-05-06  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Within_Postcondition): Renamed to
	Within_Contract_Or_Predicate.

2024-05-06  Justin Squirek  <squirek@adacore.com>

	* sem_warn.adb (Within_Postcondition): Add case to ignore
	references within generated predicate function calls.

2024-05-06  Ronan Desplanques  <desplanques@adacore.com>

	* hostparm.ads: Fix reference to RM clause.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-finpri.ads (Finalize_Master): Remove obsolete reference
	in the description.
	(Finalize_Object): Document the effects of repeated calls.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* einfo.ads (Finalization_Master_Node_Or_Object): Rename into...
	(Finalization_Master_Node): ...this and adjust description.
	* exp_ch4.adb (Process_Transient_In_Expression): Attach the object
	to its master node here.
	* exp_ch7.ads (Attach_Object_To_Master_Node): New declaration.
	* exp_ch7.adb (Attach_Object_To_Master_Node): New procedure.
	(Build_Finalizer.Process_Declarations): Examine the type of a
	variable to spot master nodes.
	(Build_Finalizer.Process_Object_Declaration): Look only at the
	object and deal specifically with the case of a master node.
	(Build_Finalizer.Build_BIP_Cleanup_Stmts): Move to child function
	of Attach_Object_To_Master_Node.
	(Build_Finalizer.Make_Address_For_Finalize): Move to...
	(Insert_Actions_In_Scope_Around.Process_Transient_In_Scope): Attach
	the object to its master node here.
	(Make_Address_For_Finalize): ...here.
	(Make_Master_Node_Declaration): Adjust to above renaming and set
	Finalization_Master_Node only on the object.
	(Make_Suppress_Object_Finalize_Call): Adjust to above renaming and
	attach the object to its master node here.
	* exp_util.adb (Requires_Cleanup_Actions): Examine the type of a
	variable to spot master nodes.
	* gen_il-fields.ads (Opt_Field_Enum): Adjust to above renaming.
	* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
	* rtsfind.ads (RE_Id): Add RE_Chain_Node_To_Master.
	(RE_Unit_Table): Add entry for  RE_Chain_Node_To_Master.
	* libgnat/s-finpri.ads (Chain_Node_To_Master): New declaration.
	* libgnat/s-finpri.adb (Chain_Node_To_Master): New procedure.
	(Attach_Object_To_Master): Call it.
	(Finalize_Master): Do not raise Program_Error on null addresses.
	(Finalize_Object): Add assertion that the address is not null.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnarl/s-taprob.ads (Protection): Add cross-reference to the
	counterpart in System.Tasking.Protected_Objects.Entries.
	* libgnarl/s-taskin.ads (Locking Rules): Replace PO_Simple by
	Protected_Objects.
	* libgnarl/s-tpoben.ads (Protection_Entries): Likewise.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_attr.adb (Expand_N_Attribute_Reference) <Finalization_Size>:
	Return 0 if the prefix is a dereference of an access value subject
	to the No_Heap_Finalization pragma.

2024-05-06  Ronan Desplanques  <desplanques@adacore.com>

	* exp_imgv.adb (Append_Table_To): Remove reference to removed
	field.
	* gen_il-fields.ads: Remove Is_Enum_Array_Aggregate field.
	* gen_il-gen-gen_nodes.adb: Likewise.
	* sem_aggr.adb: Tweak warning emission condition.
	* sinfo.ads: Remove documentation for Is_Enum_Array_Aggregate.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* make.adb (Scan_Make_Arg): Remove redundant condition.
	* switch-b.adb (Scan_Debug_Switches): Likewise.
	* switch-c.adb (Scan_Front_End_Switches): Likewise.

2024-05-06  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add guard.

2024-05-06  Piotr Trojanek  <trojanek@adacore.com>

	* exp_pakd.adb (Create_Packed_Array_Impl_Type): Set associated
	node for the packed array itype.
	* exp_util.adb (Possible_Side_Effect_In_SPARK): Remove
	workaround for a missing associated node.

2024-05-06  Richard Kenner  <kenner@adacore.com>

	* freeze.adb (Freeze_Entity): When changing the convention of
	primitive to match that of the type, only do this for user-specified
	primitives.

2024-05-06  Bob Duff  <duff@adacore.com>

	* exp_put_image.adb (Build_Image_Call): Call Set_Uses_Sec_Stack on
	the current scope. We don't do this at all call sites, because
	there are three; better to do it here.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_attr.adb (Analyze_Attribute) <Attribute_Round>: Also accept it
	for ordinary fixed point types.
	* doc/gnat_rm/implementation_defined_attributes.rst (Round): New.
	* gnat_rm.texi: Regenerate.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch3.adb (Expand_Freeze_Class_Wide_Type): Use No instead of
	not Present.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): Adjust
	the Sloc of the master node declaration in the degenerate case.

2024-05-06  Yannick Moy  <moy@adacore.com>

	* inline.adb (Call_Can_Be_Inlined_In_GNATprove_Mode):
	Add case to prevent inlining of call.
	* inline.ads: Likewise.
	* sem_res.adb (Resolve_Call): Update comment and message.

2024-05-06  Eric Botcazou  <ebotcazou@adacore.com>

	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-finpri$(objext).
	* contracts.adb (Add_Call_Helper): Append freeze actions to the
	class-wide type rather than the specific tagged type.
	* einfo.ads (Finalization_Master_Node_Or_Node): Document.
	(Status_Flag_Or_Transient_Decl): Remove.
	* exp_attr.adb (Expand_N_Attribute_Reference) <Address>: Do not
	adjust a return object of a class-wide interface type.
	* exp_ch3.adb  (Expand_Freeze_Class_Wide_Type): Add test that
	Finalize_Address is not already present as a condition for calling
	Make_Finalize_Address_Body.
	(Expand_Freeze_Record_Type): Call Make_Finalize_Address_Body for
	class-wide types of both regular tagged types and interface types.
	* exp_ch4.adb (Process_Transients_In_Expression): Replace the use
	of hooks with the use of master nodes.
	* exp_ch6.adb (Build_Flag_For_Function): Delete.
	(Expand_N_Extended_Return_Statement): Create a master node for the
	return object if it does not exist.  At the end of the statement,
	generate a call to Suppress_Object_Finalize.
	(Expand_Non_Function_Return): Likewise just before the return.
	* exp_ch7.ads (Make_Master_Node_Declaration): Declare.
	(Make_Suppress_Object_Finalize_Call): Likewise.
	* exp_ch7.adb (Build_Finalization_Master): Defer generating the
	call to Set_Finalize_Address until freezing if the Finalize_Address
	procedure has not been analyzed yet.
	(Build_Finalizer): Reimplement the expansion using a finalization
	scope master per finalizer.
	(Insert_Actions_In_Scope_Around): Replace finalization hooks by
	master nodes and calls to the Finalize_Object.
	(Make_Master_Node_Declaration): New procedure.
	(Make_Suppress_Object_Finalize_Call): Likewise.
	* exp_util.ads (Build_Transient_Object_Statements): Delete.
	* exp_util.adb (Build_Transient_Object_Statements): Likewise.
	(Requires_Cleanup_Actions): Remove obsolete code and return true
	for master nodes.
	* gen_il-fields.ads (Opt_Field_Enum): Add
	Finalization_Master_Node_Or_Object and
	remove Status_Flag_Or_Transient_Decl.
	* gen_il-gen-gen_entities.adb (Allocatable_Kind): Likewise.
	* rtsfind.ads (RTU_Id): Add System_Finalization_Primitives.
	(RE_Id): Add entities of System_Finalization_Primitives.
	(RE_Unit_Table): Add entries for them.
	* sem_ch3.adb (Analyze_Object_Declaration): For an array whose type
	has an unconstrained first subtype and a controlled component, set
	the Is_Constr_Array_Subt_With_Bounds flag.
	* libgnat/s-finpri.ads: New file.
	* libgnat/s-finpri.adb: Likewise.

2024-05-06  Yannick Moy  <moy@adacore.com>

	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Adapt checking.

2024-04-26  Jakub Jelinek  <jakub@redhat.com>

	* gnatvsn.ads: Bump Library_Version to 15.

2024-04-15  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst
	(Exceptional_Cases): Add description for aspect.
	* doc/gnat_rm/implementation_defined_pragmas.rst
	(Exceptional_Cases): Add description for pragma.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-03-07  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/113979
	* exp_ch4.adb (Expand_N_Allocator): In the subtype indication case,
	call Apply_Predicate_Check on the resulting access value if needed.

2024-02-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/113893
	* exp_ch7.adb (Build_Anonymous_Master): Do not build the master
	for a local designated type.
	* exp_util.adb (Build_Allocate_Deallocate_Proc): Force Needs_Fin
	to false if no finalization master is attached to an access type
	and assert that it is anonymous in this case.
	* sem_res.adb (Resolve_Allocator): Mention that the object might
	not be finalized at all in the warning given when the type is an
	anonymous access-to-controlled type.

2024-01-23  Ronan Desplanques  <desplanques@adacore.com>

	* gnatvsn.ads: Update year.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use the
	TYPE_CANONICAL of types when it comes to aliasing.
	* gcc-interface/utils.cc (relate_alias_sets): Likewise.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.cc (gnat_to_gnu_entity) <E_Array_Type>: Use a
	separate FLD local variable to hold the first field of the fat
	pointer type being built.
	* gcc-interface/gigi.h (relate_alias_sets): Remove GNU_ prefix on
	the first two parameters.
	* gcc-interface/utils.cc (relate_alias_sets): Likewise and adjust.

2024-01-09  Viljar Indus  <indus@adacore.com>

	* sem_attr.adb: avoid marking a use of the Address attribute
	as a modification of its prefix.

2024-01-09  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate): Change "not Present"
	tests to tests using "No" (in two places).

2024-01-09  Bob Duff  <duff@adacore.com>

	* sem_ch12.adb (Instantiate_Type): Make the relevant error message
	conditional upon "Ekind (A_Gen_T) /= E_Incomplete_Type". Misc
	cleanup.

2024-01-09  Gary Dismukes  <dismukes@adacore.com>

	* exp_aggr.adb (Expand_Container_Aggregate): Add code to determine
	whether the aggregate is an indexed aggregate, setting a flag
	(Is_Indexed_Aggregate), which is tested to have proper separation
	of treatment for the Add_Unnamed
	(for positional aggregates) and New_Indexed (for indexed
	aggregates) cases. In the code generating associations for indexed
	aggregates, remove the code for Expressions cases entirely, since
	the code for indexed aggregates is governed by the presence of
	Component_Associations, and add an assertion that Expressions must
	be Empty. Also, exclude empty aggregates from entering that code.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* rtsfind.ads (RE_Id): Remove RE_Attach.
	(RE_Unit_Table): Likewise.
	* libgnat/s-finmas.ads (Attach): Delete.
	* libgnat/s-finmas.adb (Attach): Likewise.

2024-01-09  Tucker Taft  <taft@adacore.com>

	* pprint.adb (List_Name): Check for "Box_Present" when displaying
	a list, and emit "<>" if returns True.
	* sem_scil.adb (Check_SCIL_Node): Handle case when the type of a
	parameter is from a package that was mentioned in a limited with
	clause, and make no further checks, since this check routine does
	not have all the logic to check such a usage.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* freeze.adb (Freeze_Expression.Has_Decl_In_List): Deal specifically
	with itypes that are class-wide subtypes.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/s-atopri.ads (Atomic_Store): New generic procedure.
	(Atomic_Store_8): New instantiated procedure.
	(Atomic_Store_16): Likewise.
	(Atomic_Store_32): Likewise.
	(Atomic_Store_64): Likewise.
	* libgnat/s-atopri__32.ads (Atomic_Store): New generic procedure.
	(Atomic_Store_8): New instantiated procedure.
	(Atomic_Store_16): Likewise.
	(Atomic_Store_32): Likewise.
	* gcc-interface/decl.cc (gnat_to_gnu_subprog_type): Implement the
	support for __atomic_store_n and __sync_bool_compare_and_swap_n.
	* gcc-interface/gigi.h (list_second): New inline function.

2024-01-09  Javier Miranda  <miranda@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Specification): Do not replace
	the type of the formals with its corresponding record in
	init-procs.
	* sem_ch9.adb (Analyze_Requeue): Add missing support to requeue to
	a procedure that denotes a renaming of an entry.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Possible_Side_Effect_In_SPARK): Refine handling of
	itype declarations.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Specification): Set Is_Inlined
	flag by default in GNATprove mode.
	* sem_res.adb (Resolve_Call): Only look at flag which is cleared
	when inlined subprogram is detected to be recursive.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Establish_Actual_Mapping_For_Inlined_Call):
	Remove detection of recursive calls.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* inline.adb (Cannot_Inline): Cleanup use of 'Length; remove
	dead code.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* sem_aggr.adb (Resolve_Container_Aggregate): Use "No".
	* sem_ch8.adb (Find_Direct_Name): Likewise.

2024-01-09  Steve Baird  <baird@adacore.com>

	* sem_util.adb (Enclosing_Declaration): Instead of returning a
	subprogram specification node, return its parent (which is
	presumably a subprogram declaration).
	* contracts.adb (Insert_Stable_Property_Check): Remove code
	formerly needed to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.
	* exp_attr.adb (In_Available_Context): Remove code formerly needed
	to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.
	* sem_ch8.adb (Is_Actual_Subp_Of_Inst): Remove code formerly
	needed to compensate for incorrect behavior of
	Sem_Util.Enclosing_Declaration.

2024-01-09  Steve Baird  <baird@adacore.com>

	* sem_ch8.adb (Check_Constrained_Object): Before updating the
	subtype mark of an object renaming declaration by calling Rewrite,
	first check whether the destination of the Rewrite call exists.
	* atree.adb (Copy_Slots): Return without performing any updates if
	Destination equals Empty or Error, or if Source equals Empty. Any
	of those conditions indicates an error case.
	* sem_ch12.adb (Analyze_Formal_Derived_Type): Avoid cascading
	errors.
	* sem_ch3.adb (Analyze_Number_Declaration): In an error case, do
	not pass Error as destination in a call to Rewrite.
	(Find_Type_Of_Subtype_Indic): In an error case, do not pass Error
	or Empty as destination in a call to Rewrite.

2024-01-09  Joffrey Huguet  <huguet@adacore.com>

	* libgnat/i-cstrin.ads (Update): Fix precondition.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_aggr.adb (Resolve_Extension_Aggregate): Remove the unreachable
	call to Transform_BIP_Assignment as well as the procedure.

2024-01-09  Bob Duff  <duff@adacore.com>

	* lib-xref.adb (Generate_Reference): Do not count it as a read
	reference if we're calling a TSS.

2024-01-09  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/implementation_defined_aspects.rst,
	doc/gnat_rm/implementation_defined_pragmas.rst: Add sections for
	Always_Terminates.
	* gnat-style.texi: Regenerate.
	* gnat_rm.texi: Regenerate.
	* gnat_ugn.texi: Regenerate.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/78207
	* libgnat/g-regexp.ads: Fix outdated comment.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/112781
	* exp_ch6.ads (Is_Build_In_Place_Function): Adjust description.
	* exp_ch6.adb (Is_True_Build_In_Place_Function_Call): Delete.
	(Is_Function_Call_With_BIP_Formals): New predicate.
	(Is_Build_In_Place_Function_Call): Restore original semantics.
	(Expand_Call_Helper): Adjust conditions guarding the calls to
	Add_Dummy_Build_In_Place_Actuals to above renaming.
	(Expand_N_Extended_Return_Statement): Adjust to above renaming.
	(Expand_Simple_Function_Return): Likewise.  Move the assertion
	to after the transformation into an extended return statement.
	(Make_Build_In_Place_Call_In_Allocator): Remove unreachable code.
	(Make_Build_In_Place_Call_In_Assignment): Likewise.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR ada/112781
	* sem_ch12.adb (Instantiate_Type): Use Etype instead of Base_Type
	consistently to retrieve the ancestor for a derived type.
	* sem_ch4.adb (Analyze_Explicit_Dereference): Test Is_Access_Type
	consistently before accessing Designated_Type.

2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils2.cc (build_binary_op) <EQ_EXPR>: Relax
	assertion for regular pointer types.

2024-01-04  David Malcolm  <dmalcolm@redhat.com>

	* gcc-interface/lang.opt.urls: New file, autogenerated by
	regenerate-opt-urls.py.

2024-01-03  Jakub Jelinek  <jakub@redhat.com>

	* gnat_ugn.texi: Bump @copying's copyright year.
	* gnat_rm.texi: Likewise.


Copyright (C) 2024 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.