aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/ChangeLog
blob: 66de5272698c3e78f737534c0485518eedd8088b (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
2019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindo.ads: Move type Precedence_Kind from the private to the
	visible part of the unit.
	* bindo-augmentors.adb: Remove the use of global data as it is
	bad practice.
	(Augment_Library_Graph): Update the parameter profile.
	(Is_Visited, Set_Is_Visited): Remove.
	(Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
	parameter profile and comment on usage.
	(Visit_Vertex): Likewise.  Also keep track of which invocation
	edge activates a task.
	* bindo-augmentors.ads (Augment_Library_Graph): Update the
	parameter profile and comment on usage.
	* bindo-builders.adb (Create_Forced_Edge,
	Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
	Add_Edge.
	* bindo-diagnostics.adb: Add with end use clauses for Restrict
	and Rident.
	(Output_Dynamic_Model_Suggestions): Remove.
	(Output_Invocation_Related_Suggestions): New routine.
	(Output_Suggestions): Output all invocation-related suggestions
	together.
	* bindo-elaborators.adb: Remove types Comparator_Ptr and
	Predicate_Ptr.
	(Find_Best_Vertex): Update the parameter profile.
	* bindo-graphs.adb (Activates_Task): New routine.
	(Add_Body_Before_Spec_Edge): Update the call to
	Add_Edge_With_Return.
	(Add_Edge): Update the parameter profile and the call to
	Add_Edge_With_Return.
	(Add_Edge_With_Return): Update the parameter profile and comment
	on usage.
	(At_Least_One_Edge_Satisfies): New routine.
	(Contains_Elaborate_All_Edge): Reimplement.
	(Contains_Static_Successor_Edge, Contains_Task_Activation): New
	routine.
	(Contains_Weak_Static_Successor): Remove.
	(Is_Static_Successor_Edge): New routine.
	* bindo-graphs.ads: Add types LGE_Predicate_Ptr,
	LGV_Comparator_Ptr, and LGV_Predicate_Ptr.  Update type
	Library_Graph_Edge_Attributes to capture whether an invocation
	edge activates a task.  Update the value of
	No_Library_Graph_Edge_Attributes.
	(Activates_Task): Update the parameter profile and comment on
	usage.
	(Contains_Static_Successor_Edge, Contains_Task_Activation): New
	routines.
	(Contains_Weak_Static_Successor): Remove.
	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
	Update the documentation to reflect the new task-related advice.
	* gnat_ugn.texi: Regenerate.

2019-07-09  Piotr Trojanek  <trojanek@adacore.com>

	* exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
	low-level Ekind test with a high-level wrapper.

2019-07-09  Arnaud Charlet  <charlet@adacore.com>

	* libgnat/s-memory.adb: Disable calls to Abort defer/undefer
	when ZCX_By_Default.

2019-07-09  Javier Miranda  <miranda@adacore.com>

	* sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
	not allowed for a derivation of a generic type. Extend the
	current test to check that none of the parents is a generic
	type.

2019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
	sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
	reformatting.

2019-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
	set properly the entity to which the node has been resolved. The
	original entity is the first one found during analysis, and is
	not necessarily the resolved one.
	(Resolve_Op_Not): If the argument of negation is an overloaded
	equality operation, call its resolution directly given that the
	context type does not participate in overload resolution.

2019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindo.adb: Remove with and use clauses for Debug.  Add with
	and use clauses for Opt.
	(Find_Elaboration_Order): Enable the v4.0 elaboration order. The
	v3.0 mechanism is now available under binder switch -H.
	* bindusg.adb (Display): Enable switch -H.
	* debug.adb: Free compiler switch -gnatd_G.  Free binder switch
	-d_N.
	* sem_elab.adb: Update the section on switches to remove
	-gnatd_G.
	(Invocation_Graph_Recording_OK): The invocation graph is now
	unconditionally recorded in ALI files.
	* switch-b.adb (Scan_Binder_Switches): Scan switch -H.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Update the documentation on compiler switches related to
	elaboration.  Update the documentation on binder switches to
	include switch -H.
	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
	the documentation on elaboration order handling in GNAT.
	* gnat_ugn.texi: Regenerate.

2019-07-09  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Entities): Disregard formals altogether.
	(List_Name): Properly escape the double quote in the JSON
	output.

2019-07-09  Javier Miranda  <miranda@adacore.com>

	* exp_util.adb (Remove_Side_Effects): Preserve the
	Do_Range_Check flag.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* sinfo.ads: Refine comment for Do_Range_Check.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
	attribute reference on Enum_Rep.

2019-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
	case where the actual for a formal package in an instance is the
	current instance of an enclosing generic package.
	(Check_Formal_Packages): If the formal package declaration is
	box-initialized or lacks associations altogether, no internal
	instance was created to verify conformance, and there is no
	validating package to remove from tree.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* freeze.adb (Build_Renamed_Body): Do not set body to inline in
	GNATprove mode.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
	of static expressions in GNATprove_Mode.
	* sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
	special case for GNATprove_Mode.

2019-07-09  Piotr Trojanek  <trojanek@adacore.com>

	* doc/gnat_rm/the_gnat_library.rst,
	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
	erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
	libgnat/g-regexp.ads, libgnat/g-regpat.ads,
	libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
	libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
	* gnat_rm.texi, gnat_ugn.texi: Regenerate.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Check_Expression): Handle correctly implicit
	assignments as part of allocators and (extension) aggregates.
	(Get_Root_Object): Adapt for new path expressions.
	(Is_Path_Expression): Return True for (extension) aggregate.

2019-07-09  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.ads: Fix a typo.

2019-07-09  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Scope_Within_Or_Same): Handle properly task
	bodies and protected bodies, so that local variables within have
	their proper scopes after these constructs have been rewritten
	during expansion. This patch resembles but is not identical to
	the code in Scope_Within.

2019-07-09  Arnaud Charlet  <charlet@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Set
	Dynamic_Elaboration_Checks to True in CodePeer mode.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
	encountering unknown global variable.

2019-07-09  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Check_Expression): Change signature to take an
	Extended_Checking_Mode, for handling read permission checking of
	sub-expressions in an assignment.
	(Check_Parameter_Or_Global): Adapt to new behavior of
	Check_Expression for mode Assign.
	(Check_Safe_Pointers): Do not analyze generic bodies.
	(Check_Assignment): Separate checking of the target of an
	assignment.

2019-07-09  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.ads (JSON format): Adjust.
	* repinfo.adb (Need_Blank_Line): Rename to...
	(Need_Separator): ...this.
	(Blank_Line): Rename to...
	(Write_Separator): ...this and add JSON specific handling.
	(List_Array_Info): Adjust to above renaming.
	(List_Object_Info): Likewise.
	(List_Record_Info): Likewise.
	(List_Subprogram_Info): Likewise.
	(List_Type_Info): Likewise.
	(List_Entities): Do not set Need_Blank_Line.
	(List_Rep_Info): Set Need_Separator and add JSON specific
	handling. Output a single JSON stream in the  normal case.

2019-07-09  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
	-fdump-ada-spec now that we generate Ada 2012.
	* gnat_ugn.texi: Regenerate.

2019-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Common_Type_Info): New procedure extracted
	from...
	(List_Type_Info): ...here.  Call it for the common information,
	start with a blank line and output the linker section at the
	end, if any.
	(List_Mechanisms): Rename to...
	(List_Subprogram_Info): ...this.
	(List_Array_Info): Call List_Common_Type_Info.
	(List_Entities): Adjust to above change and renaming.
	(List_Record_Info): Call List_Common_Type_Info.

2019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-sercom.ads
	(Serial_Port_Descriptor): New type.
	(Serial_Port): Add a comment, make it hold a
	Serial_Port_Descriptor.
	(To_Ada, To_C): New procedures.
	(Port_Data, Port_Data_Access): Remove types.
	* libgnat/g-sercom.adb (To_Ada): New stub.
	* libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
	Update implementations accordingly.
	* s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
	System.Win32.HANDLE on Windows, and to Interfaces.C.int on
	Linux. Add "Interfaces.C." prefix for other basic integer type
	bindings.
	* xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
	for subtypes generation.

2019-07-08  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Update documentation on No_Exceptions restriction.
	* gnat_rm.texi: Regenerate.

2019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.

2019-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
	package and subprogram bodies.

2019-07-08  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
	of ignored GNATpp switch.

2019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst:
	Update the documentation of pragma Initialize_Scalars.
	* gnat_rm.texi: Regenerate.

2019-07-08  Javier Miranda  <miranda@adacore.com>

	* exp_ch4.adb (Tagged_Membership): Fix regression silently
	introduced in r260738 that erroneouslusy causes the evaluation
	to True of the membership test when the left operand of the
	membership test is a class-wide interface object and the right
	operand is a type that implements such interface type.

2019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
	register an address clause when its prefix denotes a generic
	formal object.

2019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
	of an Elaborate_All edge before iterating over the edges of the
	cycle.
	(Output_Elaborate_Body_Transition): Update the parameter profile
	and the comment on usage. Add a missing case where the edge is
	within the context of an Elaborate_All.
	(Output_Transition): Update the call to
	Output_Elaborate_Body_Transition.
	* bindo-graphs.ads, bindo-graphs.adb
	(Contains_Elaborate_All_Edge): New routine.

2019-07-08  Piotr Trojanek  <trojanek@adacore.com>

	* lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
	the fake __HEAP entity.

2019-07-08  Daniel Mercier  <mercier@adacore.com>

	* gnat1drv.adb: Suppress warnings on memory representation in
	CodePeer compiler mode.

2019-07-08  Nicolas Roche  <roche@adacore.com>

	* rtinit.c (__gnat_runtime_initialize): Remove dependency on
	CommandLineToArgvW.

2019-07-08  Doug Rupp  <rupp@adacore.com>

	* Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.

2019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* Makefile.rtl: Use g-sercom__linux.adb for all linuxes.

2019-07-08  Yannick Moy  <moy@adacore.com>

	* expander.adb (Expand): Do not reset Analyzed flag always.
	* sem_eval.adb (Fold_Ureal): Mark node as analyzed.

2019-07-08  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
	the assignment statement that computes the delay value, to
	prevent improper tree sharing when the value is a type
	conversion and Float_Overflow checks are enabled.

2019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindo.adb: Update the section on terminology to include new
	concepts.  Update the section on switches to include new
	entries.
	* bindo.ads: Add type Precedence_Kind.
	* bindo-builders.adb: Add with and use clauses for Debug and
	Bindo.Validators.  Add use clauses for
	Bindo.Validators.Invocation_Graph_Validators and
	Bindo.Validators.Library_Graph_Validators.
	(Build_Invocation_Graph): Validate the graph immediately after
	it was built.
	(Build_Library_Graph): Update the parameter profile. The
	creation of the graph is now elaboration model-agnostic.
	Validate the graph immediately after it was built.
	(Create_With_Edge): Create regular with edges for Elaborate and
	Elaborate_All edges when the appropriate debug switches are in
	effect.
	* bindo-builders.ads (Build_Library_Graph): Update the parameter
	profile.
	* bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
	an Elaborate_All edge throughout the inspection of the cycle's
	edges.
	(Output_Dynamic_Model_Suggestions): Output the suggestion only
	when the cycle contains at least one weak edge where the
	successor was statically elaborated.
	(Output_Elaborate_Body_Transition, Output_Forced_Transition,
	Output_With_Transition): Update the assertions.
	* bindo-elaborators.adb: Remove use clauses for
	Bindo.Validators.Invocation_Graph_Validators and
	Bindo.Validators.Library_Graph_Validators.  Remove strings
	Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
	Remove type String_Ptr.
	(Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
	Create_Component_Candidates_Set): Remove.
	(Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
	(Elaborate_Component): Update the parameter profile and the
	comment on usage.  Reimplement the elaboration of a component.
	The algorithm will now attempt to elaborate as many vertices
	possible. If this is not possible, and a weakly elaborable
	vertex is available use unit was compiled using the dynamic
	model, the algorithm will elaborate it.
	(Elaborate_Library_Graph): Reimplement the elaboration of the
	graph. The algorithm will now attempt to elaborate as many
	vertices along with their components as possible. If this is not
	possible, and a weakly elaborable vertex is available use unit
	was compiled using the dynamic model, the algorithm will
	elaborate it along with its component.
	(Elaborate_Units): Merge with the functionality of
	Elaborate_Units_Common.
	(Elaborate_Units_Common, Elaborate_Units_Dynamic,
	Elaborate_Units_Static): Remove.
	(Elaborate_Vertex): Update the parameter profile and the comment
	on usage.  Reimplemented.
	(Find_Best_Candidate): Remove.
	(Find_Best_Elaborable_Vertex, Find_Best_Vertex,
	Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
	Insert_Elaborable_Successor, Insert_Vertex): New routines.
	(Is_Better_Candidate): Remove.
	(Is_Better_Elaborable_Vertex,
	Is_Better_Weakly_Elaborable_Vertex,
	Is_Suitable_Elaborable_Vertex,
	Is_Suitable_Weakly_Elaborable_Vertex): New routines.
	(Trace_Candidate_Vertices): Remove.
	(Trace_Component): Output the number of strong and weak
	predecessors.
	(Trace_Unelaborated_Vertices): Remove.
	(Trace_Vertex): Output the number of strong and weak
	predecessors.
	(Trace_Vertices): New routine.
	(Update_Successor, Update_Successors): Update the parameter
	profile and the comment on usage.
	* bindo-graphs.adb: Remove type Precedence_Kind.
	(Add_Edge_With_Return): Update the increment of pending
	predecessors.
	(Add_Vertex): Provide default values for strong and weak
	predecessors.
	(Complementary_Vertex): Move the initial declaration to the
	spec. Update the parameter profile and the comment on usage.
	(Contains_Weak_Static_Successor): New routine.
	(Create): Update the parameter profile. The creation of the
	graph is now elaboration model-agnostic.
	(Decrement_Pending_Predecessors): Update the parameter profile
	and the comment on usage. Reimplemented.
	(Delete_Edge): Update the decrement of pending predecesors.
	(Has_Elaborate_Body): Do not treat a vertex as being subject to
	Elaborate_Body when a debug switch is in effect.
	(Increment_Pending_Predecessors): Update the parameter profile
	and the comment on usage. Reimplemented.
	(Is_Elaborable_Component): Reimplemented.
	(Is_Elaborable_Vertex): Move the initial declaration to the
	spec.  Reimplemented.
	(Is_Elaborate_Body_Pair): New routine.
	(Is_Dynamically_Elaborated): Update the parameter profile.
	Reimplemented.
	(Is_Weakly_Elaborable_Vertex): New routine.
	(Pending_Predecessors): Removed.
	(Pending_Predecessors_For_Elaboration,
	Pending_Strong_Predecessors, Pending_Weak_Predecessors,
	Update_Pending_Predecessors): New routines.
	(Update_Pending_Predecessors_Of_Components): Update the
	increment of pending predecessors.
	* bindo-graphs.ads: Update the components of type
	Component_Attributes.  Update the components of type
	Library_Graph_Attributes.  Update the components of type
	Library_Graph_Vertex_Attributes.  Update the initialization of
	No_Component_Attributes.  Update the initialization of
	No_Library_Graph_Vertex_Attributes.
	(Complementary_Vertex, Contains_Weak_Static_Successor): New
	routines.
	(Create): Update the parameter profile and the comment on usage.
	(Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
	Update the parameter profile and the comment on usage.
	(Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
	routines.
	(Pending_Predecessors): Removed.
	(Pending_Predecessors_For_Elaboration,
	Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
	routines.
	* bindo-writers.adb (Write_Components): Moved from the spec.
	(Write_Component): Output the strong and weak predecessors.
	(Write_Library_Graph): Output the components as part of the
	graph.
	(Write_Library_Graph_Vertex): Output the strong and weak
	predecessors.
	* bindo-writers.ads (Write_Components): Moved to the body.
	* debug.adb: Add and document new GNATbind switches -d_a, -d_b,
	-d_e.
	* bindo-validators.adb: Minor reformattings.

2019-07-08  Bob Duff  <duff@adacore.com>

	* libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
	Support additional data rates.

2019-07-08  Olivier Hainque  <hainque@adacore.com>

	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
	DECL_ARTIFICIAL_P on elab proc declarations.

2019-07-08  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
	Not_In_Extended_Main local exceptions.
	(List_Structural_Record_Layout): For an extension, raise the
	former if the parent subtype has not been built and the latter
	if it is not declared in the main source unit.  Fall back to the
	flat layout if either exception has been raised.

2019-07-08  Ed Schonberg  <schonberg@adacore.com>

	* libgnat/a-strfix.adb (Delete): The RM describes the semantics
	of Delete as equivalent to that of Replace_String with a null
	argument. As a result, deleting a null string that starts past
	the end of its argument is a noop and must not raise
	Index_Error.

2019-07-08  Javier Miranda  <miranda@adacore.com>

	* exp_disp.adb (Register_Primitive): When registering a
	primitive in the secondary dispatch table, handle primitive
	inherited through several levels of type derivation (required to
	properly handle inherited 'null' primitive).

2019-07-08  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
	preprocessor directives in GNATpp.

2019-07-08  Javier Miranda  <miranda@adacore.com>

	* gnat1drv.adb (Post_Compilation_Validation_Checks:
	Validate_Compile_Time_Warning_Errors is now located in sem_prag
	(instead of sem_ch13).
	* sem_ch13.ads (Validate_Compile_Time_Warning_Error,
	Validate_Compile_Time_Warning_Errors): Move to sem_prag.
	* sem_ch13.adb
	(Compile_Time_Warnings_Errors): Move to sem_prag.
	(Initialize): Remove initialization of table
	Compile_Time_Warning_Errors.
	(Validate_Compile_Time_Warning_Error,
	Validate_Compile_Time_Warning_Errors): Move to sem_prag.
	* sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
	procedure.
	* sem_prag.adb (Initialize): Initialize table
	Compile_Time_Warning_Errors.

2019-07-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Aspect_Specifications): For a
	pre/postcondition of a generic subprogram declaration, do not
	use Relocate_Node on the aspect expression to construct the
	corresponding attribute specification, to prevent tree anomalies
	when the expression is a call with named actual parameters.

2019-07-08  Javier Miranda  <miranda@adacore.com>

	* sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
	used to report user defined compile time warning or errors
	handle 'Size for types with known static RM size.

2019-07-08  Justin Squirek  <squirek@adacore.com>

	* exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
	the building of image tables.
	(Expand_Image_Attribute): Minor cleanup.

2019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
	documentation.
	(Get_Socket_Option, Set_Socket_Option): Remove default value for
	the Level formal.

2019-07-08  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
	unanalized aspect in a generic context that has not been
	analyzed yet, if the aspect applies to a type, place the type on
	the scope stack to make its components visible, before checking
	conformance with the version of the expression analyzed at the
	freeze point.

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

	* checks.adb (Apply_Accessibility_Check): Add logic to fetch the
	function result accessibility level if one is required within
	the generated check.
	* exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
	controlling elsif block to handle more cases such as anonymous
	access results and disable checking for coextensions.

2019-07-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
	accept statement for an enclosing entry abandon analysis to
	prevent scope mismatches and potential infinite loops in
	compiler.

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* ali.adb (For_Each_Invocation_Construct,
	For_Each_Invocation_Relation): New version.
	(Scan_ALI): Initialize field Invocation_Graph_Encoding.
	(Set_Invocation_Graph_Encoding): Update the setting of the
	invocation graph encoding.
	* ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
	to ALI_Record because the encoding applies to the whole ALI,
	rather than one of the units (spec or body) for which the ALI
	file was created.
	(For_Each_Invocation_Construct, For_Each_Invocation_Relation):
	New version.
	* bindo.adb: Update the section on switches.  Complete the
	section of debugging elaboration order issues.
	(Find_Elaboration_Order): Prepare the routine for the switch
	from the old to the new elaboration order mechanism.
	* bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
	Manage a visited set used by Visit_Vertex.
	(Output_All_Cycles_Suggestions,
	Output_Dynamic_Model_Suggestions): Clarify the nature of the
	suggested switch.
	(Output_Elaborate_Body_Transition): Update the diagnostic to
	emit a better message.
	(Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
	Clarify the nature of the suggested switch.
	(Visit_Vertex): Update the parameter profile to add a set of
	invokers visited during the transition. This set prevents
	infinite exploration of the graph in case the invocations are
	recursive.
	* bindo-elaborators.adb: Add a use clause for
	Bindo.Writers.Dependency_Writers.
	(Elaborate_Units_Common): Output the library graph after it has
	been augmented with invocation edges. Output just the components
	instead of outputting the whole library graph again.
	(Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
	dependencies as expressed in the library graph.
	* bindo-units.adb (Invocation_Graph_Encoding): Update the
	extraction of the invocation graph encoding.
	* bindo-writers.adb: Add with and use clauses for Binderr and
	Butil.
	(palgc, plgc): New debug routine.
	(Write_Components): Moved to the spec. Add a header for the
	output.
	(Write_Dependencies, Write_Dependencies_Of_Vertex,
	Write_Dependency_Edge): New routine.
	(Write_Elaboration_Order): Update the logic to follow the format
	of Binde's order output.
	(Write_Library_Graph): Do not output the components every time
	the graph is written.
	(Write_Unit): Output the invocation graph encoding of the unit.
	Output the invocation constructs and relations for the unit
	only.
	* bindo-writers.ads (Write_Components): Moved from the body.
	(Write_Dependencies): New routine.
	* bindusg.adb: Prepare the routine for the switch from the old
	to the new elaboration order mechanism.
	* debug.adb: Binder switch -d_O is now not associated with any
	functionality.
	* einfo.adb (Is_Elaboration_Target): The attribute applies to
	packages, as specified by the comment on the attribute usage.
	* opt.ads: Add a global flag which controls the choice between
	the new and the legacy elaboration order mechanism.
	* sem_elab.adb: Add Package_Target to type Target_Kind.
	(Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
	Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
	Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
	entity of the main unit.
	(Create_Package_Rep): New routine.
	(Create_Target_Rep): Add processing for packages.
	(Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
	Main_Unit_Entity to obtain the entity of the main
	 unit.
	(Invocation_Graph_Recording_OK): Prepare the routine for the
	switch from the old to the new elaboration order mechanism.
	(Main_Unit_Entity): New routine.
	(Meet_Elaboration_Requirement,
	Process_Conditional_ABE_Variable_Reference): Use
	Main_Unit_Entity to obtain the entity of the main unit.
	(Process_Invocation_Instantiation): New routine.
	(Process_Invocation_Scenario): Add processing for
	instantiations.
	* switch-b.adb (Scan_Binder_Switches): Prepare the routine for
	the switch from the old to the new elaboration order mechanism.

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

	* libgnat/a-textio.adb: Add abstract state refinment.
	* libgnat/a-textio.ads: Add File_System abstract state.  Add
	global contracts, contract cases, preconditions and
	postconditions to procedures and functions.
	(Set_Input, Set_Output, Set_Error, Standard_Input,
	Standard_Output, Standard_Error, Current_Input, Current_Output,
	Current_Error): Turn SPARK_Mode off.
	(Get_Line): Turn SPARK_Mode off on Get_Line functions.
	* libgnat/a-tideio.ads, libgnat/a-tienio.ads,
	libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
	libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
	contracts, contract cases, preconditions and postconditions to
	procedures and functions.

2019-07-05  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
	installing from the command line on Windows.  Remove obsolete
	part.
	* gnat_ugn.texi: Regenerate.

2019-07-05  Vasiliy Fofanov  <fofanov@adacore.com>

	* libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
	the correct one.  Also capitalize references to False
	throughout.

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

	* exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
	parameters of function calls here either.

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
	exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
	libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
	sem_util.adb: Minor reformatting.

2019-07-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Build_Predicate_Functions): If a subtype that
	carries a static predicate aspect is frozen immediately after
	its declaration, ensure that the generated function body created
	for predicate checking is inserted after the corresponding
	subprogram declaration, which is created at the point the
	declaration is elaborated.

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch7.adb (Cleanup_Record): Use the underlying type when
	checking for components with tasks.

2019-07-05  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.

2019-07-05  Ed Schonberg  <schonberg@adacore.com>

	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
	range checks when the index type of the bit-packed array is an
	enumeration type with a non-standard representation,

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Is_Control_Flow_Statement): Delay statements
	contain an expression, which in turn may have side effects and
	affect the infinite recursion. As a result, delay statements
	should not be treated specially.

2019-07-05  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
	libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
	libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
	libgnarl/s-linux__sparc.ads: Fix typos in comments.

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_res.adb (Check_Infinite_Recursion): Reimplemented.
	(Enclosing_Declaration_Or_Statement,
	Invoked_With_Different_Arguments, Is_Conditional_Statement,
	Is_Control_Flow_Statement, Is_Immediately_Within_Body,
	Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
	Preceded_By_Control_Flow_Statement,
	Within_Conditional_Statement): New routines.

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

	* exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
	accessibility check when the conversion is an access to
	class-wide interface type and it is an actual parameter.
	* exp_ch6.adb (Expand_Call_Helper): Add documentation on the
	accessibility level of an anonymous allocator defining the value
	of an access parameter.
	* sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
	support for an anonymous allocator whose type is that of a
	stand-alone object of an anonymous access to object type.

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

	* einfo.ads, sem_res.adb: Typo fixes in comments.

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

	* exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
	Has_Foreign_Convention to the imported case only.  If a
	build-in-place function is exported, and called from Ada code,
	build-in-place protocols should be used.

2019-07-05  Ed Schonberg  <schonberg@adacore.com>

	* sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
	is a loop, continue climbing the scope stack to find the
	enclosing subprogram.
	(Gather_Components): Handle properly a choice in a record
	aggregate that is given by a subtype with a static predicate.

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

	* debug.adb (-gnatd.K): Leave available this switch.
	* contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
	Remove.
	* scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
	Contract_Only_Body_Nodes, Get_Contract_Only_Body,
	Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.

2019-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>

	* libgnat/a-strunb.ads: Import documentation from the RM

2019-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>

	* libgnat/a-strfix.ads: Import documentation from the RM

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

	* adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
	switches.

2019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>

	* ali.adb: Relocate types Invocation_Construct_Record,
	Invocation_Relation_Record, and Invocation_Signature_Record to
	the body of ALI.  Relocate tables Invocation_Constructs,
	Invocation_Relations, and Invocation_Signatures to the body of
	ALI.  Remove type Body_Placement_Codes.  Add new types
	Declaration_Placement_Codes, and
	Invocation_Graph_Encoding_Codes.  Update the literals of type
	Invocation_Graph_Line_Codes.
	(Add_Invocation_Construct): Update the parameter profile. Add an
	invocation construct built from all attributes provided.
	(Add_Invocation_Relation): Update the parameter profile. Add an
	invocation relation built from all attributes provided.
	(Body_Placement): New routine.
	(Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
	Removed.
	(Code_To_Declaration_Placement_Kind,
	Code_To_Invocation_Graph_Encoding_Kind, Column,
	Declaration_Placement_Kind_To_Code, Extra,
	For_Each_Invocation_Construct, For_Each_Invocation_Relation,
	Invocation_Graph_Encoding,
	Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
	Locations, Name): New routine.
	(Scan_Invocation_Construct_Line): Reimplement the scanning
	mechanism.
	(Scan_Invocation_Graph_Attributes_Line): New routine.
	(Scan_Invocation_Graph_Line): Use a case statement to dispatch.
	(Scan_Invocation_Relation_Line): Reimplement the scanning
	mechanism.
	(Scope): New routine.
	(Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
	Target): New routine.
	* ali.ads: Add new type Invocation_Graph_Encoding_Kind.  Add
	component Invocation_Graph_Encoding to type Unit_Record.
	Relocate various types and data structures to the body of ALI.
	(Add_Invocation_Construct, Add_Invocation_Relation): Update the
	parameter profile.
	(Body_Placement): New routine.
	(Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
	Removed.
	(Code_To_Declaration_Placement_Kind,
	Code_To_Invocation_Graph_Encoding_Kind, Column,
	Declaration_Placement_Kind_To_Code, Extra,
	For_Each_Invocation_Construct, For_Each_Invocation_Relation,
	Invocation_Graph_Encoding,
	Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
	Locations, Name, Scope, Set_Invocation_Graph_Encoding,
	Signature, Spec_Placement, Target): New routine.
	* bindo.adb: Add with clause for Binde.  Add with and use
	clauses for Debug.  Update the documentation.  Add new switches.
	(Find_Elaboration_Order): Dispatch to the proper elaboration
	mechanism.
	* bindo-augmentors.adb:
	Remove with and use clauses for GNAT and GNAT.Sets.  Remove
	membership set VS.  Update the parameter profiles of most
	routines to use better parameter names.  Update the
	implementation of most routine to use the new parameter names.
	Remove various redundant assertions.
	* bindo-builders.adb: Use better names for instantiated data
	structures. Update all references to these names.  Update the
	parameter profiles of most routines to use better parameter
	names.  Update the implementation of most routine to use the new
	parameter names.
	(Build_Library_Graph): Update the parameter profile. Update the
	call to Create.
	(Create_Vertex): Reimplemented.
	(Declaration_Placement_Vertex): New routine.
	* bindo-builders.ads (Build_Library_Graph): Update the parameter
	profile and comment on usage.
	* bindo-diagnostics.adb: Almost a new unit.
	* bindo-diagnostics.ads: Add a use clause for
	Bindo.Graphs.Invocation_Graphs.  Remove package
	Cycle_Diagnostics.
	(Diagnose_Circularities): New routine.
	* bindo-elaborators.adb: Remove the with and use clauses for
	Binderr and GNAT.Sets.  Remove the use clause for
	Bindo.Diagnostics.Cycle_Diagnostics.  Remove membership set VS.
	Update the parameter profiles of most routines to use better
	parameter names.  Update the implementation of most routine to
	use the new parameter names.  (Elaborate_Units_Common): Update
	the parameter profile. Pass an infication to the library graph
	builder whether the dynamic model is in effect.
	(Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
	Diagnose_Circularities to provide diagnostics.
	(Update_Successor): Use routine In_Same_Component to determine
	whether the predecessor and successor reside in different
	components.
	* bindo-graphs.adb: Add with and use clauses for Butil, Debug,
	Output, and Bindo.Writers.  Remove with and use clauses for
	GNAT.Lists.  Update the parameter profiles of most routines to
	use better parameter names.  Update the implementation of most
	routine to use the new parameter names.  Remove various
	redundant assertions.  Remove doubly linked list EL.  Add new
	type Precedence_Kind.
	(Add_Cycle): New routine.
	(Add_Vertex): Update the parameter profile. Update the creation
	of vertex attributes.
	(Add_Vertex_And_Complement, Body_Vertex, Column,
	Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
	routines.
	(Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
	Destroy_Library_Graph_Edge, Extra, File_Name,
	Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
	Find_Cycles, Find_First_Lower_Precedence_Cycle,
	Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
	Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
	Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
	Invocation_Edge_Count, Invocation_Graph_Encoding,
	Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
	Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
	Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
	Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
	Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
	Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
	(Is_Existing_Predecessor_Successor_Relation): Removed.
	(Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
	Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
	Length): New routine.
	(Lib_Vertex): Removed.
	(Line, Links_Vertices_In_Same_Component,
	Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
	Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
	Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
	(Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
	(Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
	(Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
	(Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
	(Set_Is_Existing_Predecessor_Successor_Relation): Removed.
	(Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
	Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
	Trace_Eol, Trace_Vertex): New routines.
	* bindo-graphs.ads: Add with and use clauses for Types and
	GNAT.Lists.  Update the parameter profiles of most routines to
	use better parameter names.  Update the implementation of most
	routine to use the new parameter names.  Add the new
	instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
	LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets.  Add new type
	Library_Graph_Cycle_Id along with an empty and initial value.
	Remove component Lib_Vertex and add new components Body_Vertex
	and Spec_Vertex to type Invocation_Graph_Vertex_Attributes.  Add
	new type Library_Graph_Cycle_Kind.  Add new iterators
	All_Cycle_Iterator and Edges_Of_Cycle_Iterator.  Add new type
	Library_Graph_Cycle_Attributes.  Add new components
	Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
	Library_Graph_Attributes.
	(Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
	Destroy_Library_Graph_Cycle_Attributes,
	Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
	Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
	Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
	In_Same_Component, Invocation_Edge_Count,
	Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
	Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
	Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
	Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
	New routines.
	(Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
	Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
	* bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
	routines.
	* bindo-units.ads: Add new instantiated data structure
	Unit_Sets.
	(File_Name, Invocation_Graph_Encoding): New routine.
	* bindo-validators.adb: Remove with and use clauses for GNAT and
	GNAT.Sets.  Remove membership set US.  Update the parameter
	profiles of most routines to use better parameter names.  Update
	the implementation of most routine to use the new parameter
	names.
	(Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
	Validate_Invocation_Graph_Vertex): Remove the validation of
	component Lib_Vertex. Add the validation of components
	Body_Vertex and Spec_Vertex.
	(Write_Error): New routine.
	* bindo-validators.ads (Validate_Cycles): New routine.
	* bindo-writers.adb: Update the parameter profiles of most
	routines to use better parameter names.  Update the
	implementation of most routine to use the new parameter names.
	(Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
	(Write_Invocation_Graph_Vertex): Remove the output of component
	Lib_Vertex. Add the output of components Body_Vertex and
	Spec_Vertex.
	* bindo-writers.ads (Write_Cycles): New routine.
	* debug.adb: Use binder switches -d_C and -d_P, add
	documentation on their usage.
	* gnatbind.adb: Remove with and use clauses for Binde.  Delegate
	the choice of elaboration mechanism to Bindo.
	* lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
	Name, Placement, Scope, Signature, Target): Removed.
	(Write_Invocation_Graph): Moved at the top level.
	(Write_Invocation_Graph_Attributes): New routine.
	(Write_Invocation_Relation, Write_Invocation_Signature): Moved
	at the top level.
	* lib-writ.ads: Add a documentation section on invocation graph
	attributes.
	* sem_elab.adb (Body_Placement_Of): New routine.
	(Declare_Invocation_Construct): Update the call to
	Add_Invocation_Construct.
	(Declaration_Placement_Of_Node): New routine.
	(Get_Invocation_Attributes): Correct the retrieval of the
	enclosing subprogram where the postcondition procedure lives.
	(Placement_Of, Placement_Of_Node): Removed.
	(Record_Invocation_Graph): Record the encoding format used.
	(Record_Invocation_Graph_Encoding): New routine.
	(Record_Invocation_Relation): Update the call to
	Add_Invocation_Relation.
	(Spec_Placement_Of): Removed.
	* libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.

2019-07-05  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Apply_Predicate_Check): Except within the
	subprogram body that defines the formal, do not apply predicate
	check on a formal IN parameter: such a check is redundant and
	its expansion can lead to out-of-scope references when it is
	originates in a function call in a precondition,

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

	* sem_res.adb (Resolve_Call): Cannot inline in quantified
	expressions.
	* sem_util.adb, sem_util.ads (In_Quantified_Expression): New
	function.

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

	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Fix typo.
	* gnat_rm.texi: Regenerate.

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

	* exp_attr.adb (Input): Take the No_Stream_Optimizations
	restriction into account.

2019-07-05  Claire Dross  <dross@adacore.com>

	* libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
	vectors are now always bounded so that they do not need to be
	limited anymore.

2019-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
	function.

2019-07-04  James Clarke <jrtc27@debian.org>

	* libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
	definition public.
	(CLOCK_REALTIME): Make value public.

2019-07-04  Javier Miranda  <miranda@adacore.com>

	* exp_tss.adb (Init_Proc): Adding missing support for access to
	subprograms and access to protected subprograms of non-default
	C++ constructors.

2019-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
	set the validity settings in CodePeer mode.
	* par-load.adb (Load): Remove all code dealing with validity
	settings.
	* validsw.ads (Validity_Check_Copies): Alphabetize.
	* validsw.adb (Reset_Validity_Check_Options): Set all options to
	off.
	(Save_Validity_Check_Options): Save all options.

2019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
	exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
	rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
	sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
	reformatting.

2019-07-04  Joffrey Huguet  <huguet@adacore.com>

	* libgnarl/a-taside.ads: Add assertion policy to ignore
	preconditions.
	(Abort_Task, Is_Terminated, Is_Callable): Add preconditions.

2019-07-04  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
	capitalization and parenthesis glitches.
	* gnat_rm.texi: Regenerate.

2019-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Remove_Context_Clauses): Handle properly the
	removal of a limited_with_clause which appears in the library
	unit oF the main unit, when some other unit in the context has a
	regular with_clause on the same unit, to prevent spurious
	visibility errors in the subsequent analysis of pending instance
	bodies.

2019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_elab.adb: Add new type Elaboration_Phase_Status along with
	a global to keep track of the elaboration phase status.
	Initialize all internal data structures to Nil for services
	Elaborated_Units, Internal_Representation, and Scenario_Storage.
	(Build_Call_Marker): Do not create a call marker when the
	elaboration phase is not active.
	(Build_Variable_Reference_Marker): Do not create a call marker
	when the elaboration phase is not active.
	(Check_Elaboration_Scenarios): Destroy all internal structures
	when the elaboration phase does not have to run. Do not execute
	when the elaboration phase is not active.
	(Elaboration_Phase_Active): New routine.
	(Finalize_All_Data_Structures): New routine.
	(Initialize): Initialize all internal data structures and signal
	that the elaboration phase has started.
	(Initialize_All_Data_Structures): New routine.
	(Initialize_Elaborated_Units): Initialize all internal data
	structures.
	(Initialize_Internal_Representation): Initialize all internal
	data structures.
	(Initialize_Scenario_Storage): Initialize all internal data
	structures.
	(Kill_Elaboration_Scenario): Do not execute when the elaboration
	phase is not active.
	(Set_Elaboration_Phase): New routine.
	(Update_Elaboration_Scenario): Do not execute when the
	elaboration phase is not active.

2019-07-04  Gary Dismukes  <dismukes@adacore.com>

	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
	treatment of calling Mask_Unfrozen_Types must also be done in
	the case of an Ignored_Ghost_Entity, because Expander_Active is
	False in that case.

2019-07-04  Yannick Moy  <moy@adacore.com>

	* sem_prag.adb (Check_Library_Level_Entity): Update for new rule
	on SPARK_Mode.

2019-07-04  Justin Squirek  <squirek@adacore.com>

	* sem_disp.adb (Check_Controlling_Formals): Obtain the full view
	before type comparison.

2019-07-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
	subprogram, extracted from Expand_Composite_Equality, to handle
	properly the composition of equality for variant record types.
	* exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
	component, to handle properly the case of a component with a
	user-defined equality. Revert to predefined equality if the
	user-defined operation is abstract, to maintain compatibility
	with older versions,

2019-07-04  Justin Squirek  <squirek@adacore.com>

	* exp_ch3.adb (Build_Initialization_Call): Fixup
	*_skip_null_excluding_check argument to handle new default.
	(Init_Formals): Make *_skip_null_excluding_check formal default
	to False
	* exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
	code duplication

2019-07-04  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Access_Definition): Do not create a master unless
	Tasking_Allowed. Otherwise, this fails on restricted runtimes.

2019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
	Default_Initial_Condition attributes to an incomplete type.

2019-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Check_Array_Type): An array type attribute such
	as 'First can be applied to an unconstrained array tyope when
	the attribute reference appears within an aspect specification
	and the prefix is a current instance, given that the prefix of
	the attribute will become a formal of the subprogram that
	implements the aspect (typically a predicate check).

2019-07-04  Piotr Trojanek  <trojanek@adacore.com>

	* sem_util.adb (Yields_Synchronized_Object): Fix typos in
	comments.

2019-07-04  Yannick Moy  <moy@adacore.com>

	* sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
	rule.

2019-07-04  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Check_Statement): Only check permission of
	object in extended return when it is of a deep type.

2019-07-04  Justin Squirek  <squirek@adacore.com>

	* sem_ch12.adb (Perform_Appropriate_Analysis): Added for
	selecting which type of analysis based on wheither the
	instantiation is a generic at the library-level. In which case
	expansion during analysis.
	(Preanalyze_Actuals): Modify calls to Analyze to use the new
	routine.

2019-07-04  Ed Schonberg  <schonberg@adacore.com>

	* exp_unst.adb: Handle conditional expressions.

2019-07-04  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
	analyze parts of the code marked in SPARK.

2019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>

	* erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
	Minor reformatting.

2019-07-04  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Explanation, Get_Expl): New functions to get
	the explanation for a permission mismatch.
	(Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
	explanation into account for issuing a more precise error
	message.
	(Set_Perm_Prefixes, Set_Perm_Extensions,
	Set_Perm_Extensions_Move): Pass suitable argument for the
	explanation node.

2019-07-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
	support for record aggregates.
	(Component_Check): Use Is_CCG_Supported_Aggregate instead of a
	similar local predicate.
	(Convert_To_Assignments): Take advantage of In_Place_Assign_OK
	predicate when possible.
	(Is_CCG_Supported_Aggregate): Return False for records with
	representation clauses and fix the logic for dealing with nested
	aggregates.

2019-07-04  Piotr Trojanek  <trojanek@adacore.com>

	* opt.adb (Set_Config_Switches): Keep assertions policy as
	enabled when analysing internal units in GNATprove mode.

2019-07-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
	N_Variable_Reference_Marker when checking for the presence of
	actions.

2019-07-04  Arnaud Charlet  <charlet@adacore.com>

	* exp_aggr.adb (Check_Component): Take into account type
	conversions.

2019-07-04  Dmitriy Anisimkov  <anisimko@adacore.com>

	* doc/gnat_ugn/platform_specific_information.rst: Document
	Windows socket timeout particularity.
	* gnat_ugn.texi: Regenerate.
	* gsocket.h: Include versionhelpers.h.
	* socket.c (__gnat_minus_500ms): New function.
	* libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
	imported function.
	* libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
	500ms from the requested timeout only on old Windows version.

2019-07-04  Thomas Quinot  <quinot@adacore.com>

	* get_scos.adb: Remove bogus, dead code.

2019-07-04  Ed Schonberg  <schonberg@adacore.com>

	* sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
	component is an entity name, its dimensions are those of its
	type.

2019-07-03  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
	GNATpp.

2019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* binde.adb: Remove with clause for System.OS_Lib.
	(Force_Elab_Order): Refactor the majority of the code in Butil.
	Use the new forced units iterator to obtain unit names.
	* bindo-builders.adb: Add with and use clauses for Binderr,
	Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables.  Add
	a hash table which maps units to line number in the forced
	elaboration order file.
	(Add_Unit): New routine.
	(Build_Library_Graph): Create forced edges between pairs of
	units listed in the forced elaboration order file.
	(Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
	Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
	Is_Duplicate_Unit, Missing_Unit_Info): New routines.
	* bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
	Refactor some of the behavior to Bindo-Units.
	* bindo-graphs.ads: Enable the enumeration literal for forced
	edges.
	* bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
	Is_Predefined_Unit): New routines.
	* butil.adb: Add with and use clauses for Opt, GNAT, and
	System.OS_Lib.  Add with clause for Unchecked_Deallocation.
	(Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
	Read_Forced_Elab_Order_File): New routines.
	* butil.ads: Add with and use clauses for Types.  Add new
	iterator over the units listed in the forced elaboration order
	file.
	(Has_Next, Iterate_Forced_Units, Next): New routine.
	* namet.adb, namet.ads (Present): New routine.

2019-07-03  Bob Duff  <duff@adacore.com>

	* sem_ch3.adb (Access_Definition): The code was creating a
	master in the case where the designated type is a class-wide
	interface type. Create a master in the noninterface case as
	well. That is, create a master for all limited class-wide types.

2019-07-03  Yannick Moy  <moy@adacore.com>

	* erroutc.adb (Sloc_In_Range): New function to determine whether
	the range of a pragma Warnings covers a location, taking
	instantiations into account.

2019-07-03  Johannes Kanig  <kanig@adacore.com>

	* osint.ads, osint.adb (Get_First_Main_File_Name): New routine
	to access the first file provided on the command line.

2019-07-03  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Process_Formals_In_Aspects): New procedure within
	Expand_Inlined_Call, to perform a replacement of references to
	formals that appear in aspect specifications within the body
	being inlined.

2019-07-03  Justin Squirek  <squirek@adacore.com>

	* sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
	the appropriate actual subtype of the object renaming being
	analyzed.
	(Check_Constrained_Object): Minor cleanup.

2019-07-03  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
	return go through traversal function call.
	(Check_Type): Consistently use underlying type.
	(Get_Perm): Adapt for case of elaboration code where variables
	are not declared in the environment. Remove incorrect handling
	of borrow and observe.

2019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* inline.adb (Build_Return_Object_Formal): New routine.
	(Can_Split_Unconstrained_Function): Code clean up.
	(Copy_Formals,Copy_Return_Object): New routines.
	(Split_Unconstrained_Function): Code clean up and refactoring.

2019-07-03  Gary Dismukes  <dismukes@adacore.com>

	* bindo-augmentors.adb, bindo-augmentors.ads,
	bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
	sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
	corrections and reformatting.

2019-07-03  Bob Duff  <duff@adacore.com>

	* sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
	if an Iterator_Specification is present.

2019-07-03  Bob Duff  <duff@adacore.com>

	* doc/gnat_ugn/gnat_utility_programs.rst: Document default
	new-line behavior.

2019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* ali.adb: Add with and use clauses for GNAT,
	GNAT.Dynamic_HTables, and Snames.  Add a map from invocation
	signature records to invocation signature ids.  Add various
	encodings of invocation-related attributes.  Sort and update
	table Known_ALI_Lines.
	(Add_Invocation_Construct, Add_Invocation_Relation,
	Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
	Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
	Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
	routines.
	(Initialize_ALI): Sort the initialization sequence. Add
	initialization for all invocation-related tables.
	(Invocation_Construct_Kind_To_Code,
	Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
	Invocation_Signature_Of, Present): New routines.
	(Scan_ALI): Add the default values for invocation-related ids.
	Scan invocation graph lines.
	(Scan_Invocation_Graph_Line): New routine.
	* ali.ads: Add with clause for GNAT.Dynamic_Tables.  Add types
	for invocation constructs, relations, and signatures.  Add
	tables for invocation constructs, relations, and signatures.
	Update Unit_Record to capture invocation-related ids.  Relocate
	table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
	from Binde.
	(Add_Invocation_Construct, Add_Invocation_Relation,
	Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
	Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
	Code_To_Invocation_Graph_Line_Kind,
	Invocation_Construct_Kind_To_Code,
	Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
	Invocation_Signature_Of, Present): New routines.
	* binde.adb: Add with and use clause for Types.  Add use clause
	for ALI.Unit_Id_Tables;
	* binde.ads: Relocate table Unit_Id_Tables and subtypes
	Unit_Id_Table, Unit_Id_Array to ALI.
	* bindgen.adb: Remove with and use clause for ALI.
	* bindgen.ads: Remove with and use clause for Binde.  Add with
	and use clause for ALI.
	* bindo.adb,  bindo.ads, bindo-augmentors.adb,
	bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
	bindo-diagnostics.adb, bindo-diagnostics.ads,
	bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
	bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
	bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
	bindo-writers.ads: New units.
	* debug.adb: Use and describe GNAT debug switches -gnatd_F and
	-gnatd_G.  Add GNATbind debug switches in the ranges dA .. dZ,
	d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
	d_1 .. d_9.  Use and describe GNATbind debug switches -d_A,
	-d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
	* exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
	Sem_Util.
	* gnatbind.adb: Add with and use clause for Bindo.  Use the new
	Bindo elaboration order only when -d_N is in effect.
	* lib-writ.adb
	(Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
	Scope, Signature, Target): New routines.
	(Write_ALI): Output all invocation-related data.
	(Write_Invocation_Graph): New routine.
	* lib-writ.ads: Document the invocation graph ALI line.
	* namet.adb, namet.ads (Present): New routines.
	* sem_ch8.adb (Find_Direct_Name): Capture the status of
	elaboration checks and warnings of an identifier.
	(Find_Expanded_Name): Capture the status of elaboration checks
	and warnings of an expanded name.
	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
	that invocation graph-related data within the body of the main
	unit is encoded in the ALI file.
	(Analyze_Generic_Subprogram_Declaration): Ensure that invocation
	graph-related data within the body of the main unit is encoded
	in the ALI file.
	(Analyze_Package_Instantiation): Perform minimal decoration of
	the instance entity.
	(Analyze_Subprogram_Instantiation): Perform minimal decoration
	of the instance entity.
	* sem_elab.adb: Perform heavy refactoring of all code. The unit
	is now split into "services" which specialize in one area of ABE
	checks.  Add processing in order to capture invocation-graph
	related attributes of the main unit, and encode them in the ALI
	file.  The Processing phase can now operate in multiple modes,
	all described by type Processing_Kind.  Scenarios and targets
	are now distinct at the higher level, and carry their own
	representations. This eliminates the need to constantly
	recompute their attributes, and offers the various processors a
	uniform interface.  The various initial states of the Processing
	phase are now encoded using type Processing_In_State, and
	xxx_State constants.
	* sem_elab.ads: Update the literals of type
	Enclosing_Level_Kind.  Add Inline pragmas on several routines.
	* sem_prag.adb (Process_Inline): Ensure that invocation
	graph-related data within the body of the main unit is encoded
	in the ALI file.
	* sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
	Code clean up.
	(Exceptions_OK): Relocated from Sem_Util.
	(Mark_Save_Invocation_Graph_Of_Body): New routine.
	* sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
	(Mark_Save_Invocation_Graph_Of_Body): New routine.
	* sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
	N_Variable_Reference_Marker.
	(Is_Elaboration_Warnings_OK_Node): Now applicable to
	N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
	(Is_Read): Use Flag4.
	(Is_SPARK_Mode_On_Node): New applicable to
	N_Variable_Reference_Marker.
	(Is_Write): Use Flag5.
	(Save_Invocation_Graph_Of_Body): New routine.
	(Set_Is_Elaboration_Checks_OK_Node): Now applicable to
	N_Variable_Reference_Marker.
	(Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
	N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
	(Set_Is_SPARK_Mode_On_Node): New applicable to
	N_Variable_Reference_Marker.
	(Set_Save_Invocation_Graph_Of_Body): New routine.
	* sinfo.ads: Update the documentation of attributes
	Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
	Is_SPARK_Mode_On_Node.  Update the flag usage of attributes
	Is_Read, Is_Write.  Add attribute Save_Invocation_Graph_Of_Body
	and update its occurrence in nodes.
	(Save_Invocation_Graph_Of_Body): New routine along with pragma
	Inline.
	(Set_Save_Invocation_Graph_Of_Body): New routine along with
	pragma Inline.
	* switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
	debug switches.
	(Scan_Debug_Switches): New routine.
	* libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
	* libgnat/g-graphs.adb (Associate_Vertices): Update the use of
	Component_Vertex_Iterator.
	(Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
	Reimplemented.
	(Iterate_Component_Vertices): New routine.
	(Iterate_Vertices): Removed.
	(Next): Update the parameter profile.
	(Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
	routines.
	* libgnat/g-graphs.ads: Update the initialization of
	No_Component.  Add type Component_Vertex_Iterator.  Remove type
	Vertex_Iterator.
	(Has_Next): Add new versions and remove old ones.
	(Iterate_Component_Vertices): New routine.
	(Iterate_Vertices): Removed.
	(Next): Add new versions and remove old ones.
	(Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
	routines.
	* libgnat/g-sets.adb (Contains): Reimplemented.
	* gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
	GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
	* rtsfind.ads: Remove extra space.

2019-07-03  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb: Add support for locally borrowing and observing
	a path.
	(Get_Root_Object): Add parameter Through_Traversal to denote
	when we are interesting in getting to the traversed parameter.
	(Is_Prefix_Or_Almost): New function to support detection of
	illegal access to borrowed or observed paths.
	(Check_Pragma): Add analysis of assertion pragmas.

2019-07-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Build_Predicate_Functions): In a generic context
	we do not build the bodies of predicate fuctions, but the
	expression in a static predicate must be elaborated to allow
	case coverage checking within the generic unit.
	(Build_Discrete_Static_Predicate): In a generic context, return
	without building function body once the
	Static_Discrete_Predicate expression for the type has been
	constructed.

2019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
	sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.

2019-07-03  Bob Duff  <duff@adacore.com>

	* par-ch3.adb (P_Defining_Identifier): Call
	Check_Defining_Identifier_Casing.
	* style.ads, styleg.ads, styleg.adb
	(Check_Defining_Identifier_Casing): New procedure to check for
	mixed-case defining identifiers.
	* stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
	flag for checking for mixed-case defining identifiers.
	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
	Document new feature.
	* gnat_ugn.texi: Regenerate.

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

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
	(Warning message control): Document that -gnatw.z/Z apply to
	array types.
	* freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
	types as well, but not if the specified alignment is the minimum
	one.
	* gnat_ugn.texi: Regenerate.

2019-07-03  Bob Duff  <duff@adacore.com>

	* einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
	correctly.

2019-07-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
	message on attribute applied to a renaming when the renamed
	object is an aggregate (from code reading).
	(Check_Aspect_At_End_Of_Declarations): In a generic context
	where freeze nodes are not generated, the original expression
	for an aspect may need to be analyzed to precent spurious
	conformance errors when compared with the expression that is
	anakyzed at the end of the current declarative list.

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

	* layout.adb (Layout_Type): Do not set the component size of an
	array with a scalar component if the component type is
	overaligned.

2019-07-03  Ed Schonberg  <schonberg@adacore.com>

	* inline.adb (Make_Loop_Labels_Unique):  New procedure to modify
	the source code of subprograms that are inlined by the
	front-end, to prevent accidental duplication between loop labels
	in the inlined code and the code surrounding the inlined call.

2019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>

	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
	the section on resolving elaboration circularities to eliminate
	certain combinations of switches which together do not produce
	the desired effect and confuse users.
	* gnat_ugn.texi: Regenerate.

2019-07-03  Arnaud Charlet  <charlet@adacore.com>

	* bindgen.adb (Gen_Main): Disable generation of reference to
	Ada_Main_Program_Name for CCG.
	* bindusg.adb (Display): Add -G to the command-line usage for
	gnatbind.
	* opt.ads (Generate_C_Code): Update comment.
	* switch-b.adb (Scan_Binder_Switches): Add handling for -G.

2019-07-03  Arnaud Charlet  <charlet@adacore.com>

	* sem_ch7.adb (Has_Referencer): Do not consider inlined
	subprograms when generating C code, which allows us to generate
	static inline subprograms.

2019-07-03  Justin Squirek  <squirek@adacore.com>

	* sem_ch6.adb (Check_Conformance): Add expression checking for
	constant modifiers in anonymous access types (in addition to
	"non-null" types) so that they are considered "matching" for
	subsequent conformance tests.

2019-07-03  Arnaud Charlet  <charlet@adacore.com>

	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
	Clarify wording on No_Multiple_Elaboration.
	* gnat_rm.texi: Regenerate.

2019-07-03  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch8.adb (Find_Selected_Component): If the prefix is the
	current instance of a type or subtype, complete the resolution
	of the name by finding the component of the type denoted by the
	selector name.

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

	* doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
	Document that boolean types with convention C now map to C99 bool.
	* gnat_rm.texi: Regenerate.

2019-07-03  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
	removing code that it is now never executed in the CCG compiler
	(dead code).

2019-07-02  Iain Sandoe  <iain@sandoe.co.uk>

	* libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
	PPC Darwin.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch12.adb (Is_Defaulted): New predicate in
	Check_Formal_Package_Intance, to skip the conformance of checks
	on parameters of a formal package that are defaulted,

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
	sem_prag.adb, sem_spark.adb: Minor reformatting.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
	of attribute to be an attribute reference of a discrete type.

2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
	handling of Has_Pragma_Inline_Always and deal with
	Has_Pragma_No_Inline.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
	declared as a subtype of a private type with an inherited
	discriminant constraint, its generated full base appears as a
	record subtype, so we need to retrieve its oen base type so that
	the inherited constraint can be applied to it.

2019-07-01  Yannick Moy  <moy@adacore.com>

	* sem_spark.adb: Completely rework the algorithm for ownership
	checking, as the rules in SPARK RM have changed a lot.
	* sem_spark.ads: Update comments.

2019-07-01  Dmitriy Anisimkov  <anisimko@adacore.com>

	* gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
	the sockaddr_in structure to determine the existence of length field
	before the sin_family.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
	applies to entities with run-time addresses, not to types.

2019-07-01  Piotr Trojanek  <trojanek@adacore.com>

	* einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
	references to the SPARK RM after the removal of Rule 7.1.4(5).

2019-07-01  Piotr Trojanek  <trojanek@adacore.com>

	* sysdep.c: Cleanup references to LynuxWorks in docs and
	comments.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* checks.adb (Insert_Valid_Check): Do not apply validity check
	to variable declared within a protected object that uses the
	Lock_Free implementation, to prevent unwarranted constant
	folding, because entities within such an object msut be treated
	as volatile.

2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>

	* exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
	handling of private and incomplete types whose full view is an
	access type, to detect additional uplevel references in dynamic
	bounds. This is relevant to N_Free_Statement among others that
	manipulate types whose full viww may be an access type.

2019-07-01  Pat Rogers  <rogers@adacore.com>

	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
	size indicated for R as a component of an array.
	* gnat_rm.texi: Regenerate.

2019-07-01  Justin Squirek  <squirek@adacore.com>

	* libgnat/s-win32.ads: Add definition for ULONG, modify
	OVERLAPPED type, and add appropriate pragmas.

2019-07-01  Bob Duff  <duff@adacore.com>

	* gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
	ignored-ghost.

2019-07-01  Yannick Moy  <moy@adacore.com>

	* sem_ch4.adb (Operator_Check): Refine error message.

2019-07-01  Piotr Trojanek  <trojanek@adacore.com>

	* libgnat/a-calend.ads: Revert "Global => null" contracts on
	non-pure routines.

2019-07-01  Piotr Trojanek  <trojanek@adacore.com>

	* exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
	componant -> component.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* libgnat/g-graphs.adb: Use type Directed_Graph rather than
	Instance in various routines.
	* libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
	Update various routines that mention the type.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* libgnat/g-sets.adb: Use type Membership_Set rathern than
	Instance in various routines.
	* libgnat/g-sets.ads: Change type Instance to Membership_Set.
	Update various routines that mention the type.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
	Instance in various routines.
	* libgnat/g-lists.ads: Change type Instance to
	Doubly_Linked_List. Update various routines that mention the
	type.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
	Instance in various routines.
	* libgnat/g-dynhta.ads: Change type Instance to
	Dynamic_Hash_Table. Update various routines that mention the
	type.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
	sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.

2019-07-01  Javier Miranda  <miranda@adacore.com>

	* exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
	'Min/'Max on integer, enumeration, fixed point and floating
	point types since the CCG backend now provides in file
	standard.h routines to support it.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
	* Makefile.rtl, gcc-interface/Make-lang.in: Register unit
	GNAT.Graphs.
	* libgnat/g-dynhta.adb: Various minor cleanups (use Present
	rather than direct comparisons).
	(Delete): Reimplement to use Delete_Node.
	(Delete_Node): New routine.
	(Destroy_Bucket): Invoke the provided destructor.
	(Present): New routines.
	* libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
	Use better names for the components of iterators.
	* libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
	* libgnat/g-lists.adb: Various minor cleanups (use Present
	rather than direct comparisons).
	(Delete_Node): Invoke the provided destructor.
	(Present): New routine.
	* libgnat/g-lists.ads: Add new generic formal Destroy_Element.
	Use better names for the components of iterators.
	(Present): New routine.
	* libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
	Reset): New routines.

2019-07-01  Dmitriy Anisimkov  <anisimko@adacore.com>

	* libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
	is not defined.

2019-07-01  Ed Schonberg  <schonberg@adacore.com>

	* exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
	Resolve result of call to Get_Simple_Init_Val, which may be a
	conversion of a literal.

2019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>

	* freeze.adb (Freeze_Expression): Remove the horrible useless
	name hiding of N. Insert the freeze nodes generated by the
	expression prior to the expression when the nearest enclosing
	scope is transient.

2019-07-01  Pierre-Marie de Rodat  <derodat@adacore.com>

	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
	formatting issues in the -gnatR section.
	* gnat_ugn.texi: Regenerate.

2019-06-30  Iain Sandoe  <iain@sandoe.co.uk>

	* gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
	Push -shared-libgcc explicitly, when it is the target default (unless
	overidden by the static flag).
	When the user has put an instance of shared/static-libgcc do not push
	a duplicate of this.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
	and tweak comment on the assertion about the scopes of Itypes.  Do not
	skip the regular processing for Itypes that are E_Record_Subtype with
	a Cloned_Subtype.  Get the Cloned_Subtype for every E_Record_Subtype
	if the type is dummy and hasn't got its own freeze node.
	<E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
	<E_Access_Subtype>: Save again the DECL of the equivalent type.
	(Gigi_Equivalent_Type) <E_Access_Subtype>: New case.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (unchecked_convert): Tweak comment.  Only skip
	dereferences when padding to have the same size on both sides.  Do it
	for destination types with self-referential size too.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
	type requires strict alignment, then set the RM size to the type size.
	Rework handling of alignment and sizes of tagged types in ASIS mode.
	(validate_size): Rename local variable and remove special handling for
	strict-alignment types.
	* gcc-interface/utils.c (finish_record_type): Constify local variables
	and use properly typed constants.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
	fields requiring strict alignment, add explicit test on Storage_Unit
	for position and size, and mention type alignment for position.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
	the main variant of a type, if any.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
	missing guard for the presence of TYPE_CANONICAL.
	(set_reverse_storage_order_on_array_type): Likewise.

2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/gigi.h (make_packable_type): Remove default value.
	(value_factor_p): Tweak prototype.
	* gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
	(gnat_to_gnu_component_type): Likewise.
	(gnat_to_gnu_field): Likewise.  Fetch the position of the field earlier
	and simplify the condition under which the type is packed.  Declare
 	local variable is_bitfield.  Pass 1 as max_align to make_packable_type
	if it is set to true.
	(copy_and_substitute_in_layout): Pass 0 to make_packable_type.
	* gcc-interface/utils.c (make_packable_array_type): New function.
	(make_packable_type): Use it to rewrite the type of array field.
	(maybe_pad_type): Pass align parameter to make_packable_type.
	(create_field_decl): Minor tweaks.
	(value_factor_p): Assert that FACTOR is a power of 2 and replace the
	modulo computation by a masking operation.

2019-06-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
	in previous change.
	* gcc-interface/gigi.h (maybe_character_type): Fix formatting.
	(maybe_character_value): Likewise.

2019-06-24  Jan Hubicka  <jh@suse.cz>

	* gcc-interface/decl.c (gnat_to_gnu_entity): Check that
	type is array or integer prior checking string flag.
	* gcc-interface/gigi.h (maybe_character_type): Likewise.
	(maybe_character_value): Likewise.

2019-06-24  Martin Sebor  <msebor@redhat.com>

	* gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
	name.

2019-06-18  Arnaud Charlet  <charlet@adacore.com>

	PR ada/80590
	* sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
	during normal processing.

2019-06-17  Arnaud Charlet  <charlet@adacore.com>

	PR ada/80590
	* exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
	conditions to avoid a unnecessary exception propagation in the default
	case.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (handle_stack_protect_attribute): Move around.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
	Document additional optional parameters.
	* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
	more than one optional parameter.
	* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
	the list of supported pragmas.  Simplify the handling of parameters
	and add support for more than one optional parameter.
	* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
	(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
	used, cold, hot, target and target_clones.
	(begin_subprog_body): Do not create the RTL for the subprogram here.
	(handle_noicf_attribute): New static function.
	(handle_noipa_attribute): Likewise.
	(handle_flatten_attribute): Likewise.
	(handle_used_attribute): Likewise.
	(handle_cold_attribute): Likewise.
	(handle_hot_attribute): Likewise.
	(handle_target_attribute): Likewise.
	(handle_target_clones_attribute): Likewise.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
	for 'Size too.
	(Identifier_to_gnu): Use the actual subtype for a reference to a
	packed array in a return statement.
	(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
	the prefix in every case.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
	Backend_Overflow_Checks_On_Target and rework comments.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (walk_nesting_tree): New static function.
	(finalize_nrv): Use it to walk the entire nesting tree.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
	obsolete test on Is_For_Access_Subtype.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (components_to_record): Set a name on the type
	created for the REP part, if any.
	* gcc-interface/utils.c (finish_record_type): Only take the maximum
	when merging sizes for a variant part at offset 0.
	(merge_sizes): Rename has_rep parameter into max.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
	for stack_protect attribute.
	(handle_stack_protect_attribute): New static function.

2019-05-28  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
	false if the internal builtin uses a variable list.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
	created out of addressability concerns if it's for the _Init parameter
	of an initialization procedure.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/ada-builtin-types.def: New file.
	* gcc-interface/ada-builtins.def: Likewise.
	* gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
	(BUILT_IN_UNLIKELY): Likewise.
	* gcc-interface/trans.c (independent_iterations_p): Initialize the
	auto-vector to 16 elements.
	(Call_to_gnu): Remove local variable and change the vector of actual
	parameters to an auto-vector.  Do not convert actual parameters to
	the argument type for front-end built-in functions.  Add support for
	front-end built-in functions.
	(build_noreturn_cond): Use internal instead of built-in function.
	* gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
	(install_builtin_function_types): Likewise.
	(install_builtin_functions): Include ada-builtins.def first.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
	specific case of component types preferably.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
	(gnat_to_gnu): Do not convert the result if it is a reference to an
	unconstrained array used as the prefix of an attribute reference that
	requires an lvalue.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
	(Identifier_to_gnu): Use it to assert that the type of the identifier
	and that of its entity are compatible for gigi.  Rename a couple of
	local variables and separate the processing of the result type.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
	putting back an intermediate conversion the type of the actuals.

2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
	count to the unsigned version of its base type before proceeding.

2019-05-16  Martin Sebor  <msebor@redhat.com>

	* gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
	reserved names.

2019-05-08  Arnaud Charlet  <charlet@adacore.com>

	* standard.ads.h: New file.

2019-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
	Honor DESTDIR.

2019-04-29  Michael K. Darling  <darlingm@gmail.com>

	* gnatvsn.ads: Bump Library_Version to 10.

2019-04-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
	    Bernd Edlinger  <bernd.edlinger@hotmail.de>
	    Jakub Jelinek  <jakub@redhat.com>

	PR target/89093
	* raise-gcc.c (TARGET_ATTRIBUTE): Define.
	(continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
	TARGET_ATTRIBUTE.

2019-04-07  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnat/i-cexten.ads (CFloat_128): New type.

2019-03-22  Dmitriy Anisimkov  <anisimko@adacore.com>

	PR ada/89583
	* libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
	Send_Socket): Fix the computation of structure lengths passed to
	low level routines.
	(Is_IPv6_Address): Fix the number of expected colons.

2019-03-11  Martin Liska  <mliska@suse.cz>

	* gcc-interface/misc.c (gnat_post_options): Wrap option name in string
	format message and fix GNU coding style.

2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
	* gcc-interface/utils.c (convert): Do not pad when doing an unchecked
	conversion here.  Use TREE_CONSTANT throughout the function.
	(unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
	destination is a more aligned array type or a larger aggregate type,
	but not between original and packable versions of a type.

2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
	operand with VOID_TYPE.

2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
	entities of a package renaming another one.

2019-02-08  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
	individual flag_unswitch_loops and flag_tree_loop_vectorize switches
	with test on global optimize switch.
	(Raise_Error_to_gnu): Likewise.

2019-02-07  Eric Botcazou  <ebotcazou@adacore.com>

	* libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.

2019-02-06  Arnaud Charlet  <charlet@adacore.com>

	* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads

2019-01-27  Eric Botcazou  <ebotcazou@adacore.com>

	* repinfo.adb (List_Component_Layout): Remove superfluous space for
	zero-sized field.
	* gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
	* gcc-interface/gigi.h (create_extra_subtype): Declare.
	* gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
	(update_n_elem): New function.
	(gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
	instead of doing it manually.
	<E_Array_Type>: Use update_n_elem to compute the maximum size.  Use the
 	index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
	of the array to the maximum size.
	<E_Array_Subtype>: Create an extra subtype using the index type of the
	base array type for self-referential bounds.  Use update_n_elem to
	compute the maximum size.  Set TYPE_ARRAY_MAX_SIZE of the array to the
	maximum size.
	(gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
	* gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
	the base type for an extra subtype.
	(gnat_type_max_size): Remove obsolete code.
	* gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
	(can_be_lower_p): Deal with pathological types.
	* gcc-interface/utils.c (create_extra_subtype): New function.
	(create_field_decl): Minor tweak.
	(max_size) <tcc_reference>: Compute a better value by using the extra
 	subtypes on the self-referential bounds.
	<tcc_binary>: Rewrite.  Deal with "negative value" in unsigned types.
	<tcc_expression>: Likewise.
	* gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
	of the arrays upfront.  Swap only if the second length is not constant.
	Use comparisons on the original bounds consistently for the null tests.
	(build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
	(build_allocator): Minor tweak.

2019-01-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (array_type_has_nonaliased_component): Return
	the same value for every dimension of a multidimensional array type.

2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
	iteration scheme, if present, throughout the translation.

2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
	DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
	by a call to memset if the LHS is a DECL.

2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
	(Loop_Statement_to_gnu): Do not set it.

2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
	(Acc_gnat_to_gnu): Likewise.
	(Acc_Data_to_gnu): Likewise.
	(Acc_Var_to_gnu): Likewise.
	(Acc_Reduc_to_gnu): Likewise.
	(Acc_Size_List_to_gnu): Likewise.
	(Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
	<Pragma_Acc_Data>): Likewise.
	(find_loop_for): Remove default value for parameters.
	* gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
	<N_Op_Eq>): ...this.

2019-01-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
	the sign bit instead of on the sign of the value.
	<PLUS_EXPR>: Turn addition of negative constant into subtraction.
	<MULT_EXPR>: Add test for degenerate case.
	<BIT_AND_EXPR>: Simplify.

2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615
	* exp_ch11.adb: Change "can not" to "cannot".
	* sem_ch4.adb: Likewise.

2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>

	PR other/16615
	* exp_ch9.adb: Mechanically replace "can not" with "cannot".
	* libgnat/s-regpat.ads: Likewise.
	* par-ch4.adb: Likewise.
	* set_targ.adb: Likewise.
	* types.ads: Likewise.

2019-01-08  Justin Squirek  <squirek@adacore.com>

	Revert:
	2018-07-31  Justin Squirek  <squirek@adacore.com>

	* lib-writ.adb (Write_With_Lines): Modfiy the generation
	of dependencies within ali files so that source unit
	bodies are properly listed even if said bodies are
	missing.  Perform legacy behavior in GNATprove mode.
	* lib-writ.ads: Modify documentation to reflect current
	behavior.

	and:
	2018-09-26  Justin Squirek  <squirek@adacore.com>

	* lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
	documentation and an extra conditional check for RCI
	units so that generated ali files will list the spec
	only instead of a body when a body is not found.

2019-01-04  Eric Botcazou  <ebotcazou@adacore.com>

	* gnatvsn.ads: Bump copyright year.

2019-01-01  Jakub Jelinek  <jakub@redhat.com>

	Update copyright years.

 	* gnat_ugn.texi: Bump @copying's copyright year.
 	* gnat_rm.texi: Likewise.

Copyright (C) 2019 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.