12019-12-22  Maciej W. Rozycki  <macro@wdc.com>
2
3	* gcc-interface/Makefile.in (toolexeclibdir): New variable.
4
52019-12-18  Eric Botcazou  <ebotcazou@adacore.com>
6
7	* gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Push a
8	diagnostics state for pragma Warnings (Off) before turning off all
9	the warnings and only pop it for pragma Warnings (On).
10
112019-12-18  Justin Squirek  <squirek@adacore.com>
12
13	* sem_ch6.adb (Analyze_Function_Return): Modify handling of
14	extended return statements to check accessibility of access
15	discriminants.
16	(Check_Aggregate_Accessibility): Removed.
17	(Check_Return_Obj_Accessibility): Added to centralize checking
18	of return aggregates and subtype indications in the case of an
19	extended return statement.
20
212019-12-18  Arnaud Charlet  <charlet@adacore.com>
22
23	* libgnat/s-regpat.adb (Parse_Literal, Parse_Piece): Ensure
24	Expr_Flags is always fully initialized.
25
262019-12-18  Arnaud Charlet  <charlet@adacore.com>
27
28	* libgnat/s-atopar.ads, libgnat/s-atopex.ads (Atomic_Type): Can
29	now be marked Atomic. This requires marking the unit Ada 202x.
30
312019-12-18  Arnaud Charlet  <charlet@adacore.com>
32
33	* libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
34	libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb: Replace
35	Optional_Big_* types by a simple check and exception raise in
36	Get_Bignum.
37	(Set_Bignum): Arg should be 'out' and not 'in out'.
38	(Invalid_Big_Integer, No_Big_Real): Removed.
39	(Is_Valid): Now convention Intrinsic.
40
412019-12-18  Piotr Trojanek  <trojanek@adacore.com>
42
43	* doc/gnat_rm/implementation_defined_pragmas.rst,
44	doc/gnat_rm/obsolescent_features.rst,
45	doc/gnat_ugn/gnat_and_program_execution.rst, exp_attr.adb,
46	exp_ch9.adb, init.c, libgnat/s-valrea.adb, par-ch6.adb,
47	sem_attr.adb, sem_ch4.adb, sem_util.ads: Fix trivial typos.
48	* gnat_rm.texi, gnat_ugn.texi: Regenerate.
49
502019-12-18  Gary Dismukes  <dismukes@adacore.com>
51
52	* sem_res.adb (Resolve_Type_Conversion): Add handling for access
53	types with designated operand and target types that are
54	referenced in places that have a limited view of an interface
55	type by retrieving the nonlimited view when it exists.  Add ???
56	comments related to missing limited_with_clause handling for
57	Target (in the non-access case).
58
592019-12-18  Ed Schonberg  <schonberg@adacore.com>
60
61	* par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada_2020
62	the keyword WITH can indicate the start of aspect specifications
63	and not a private type extension.
64	* sem_ch12.adb (Analyze_Formal_Type): Indicate that it is a
65	first subtype.
66	(Instantiate_Type): New procedure
67	Check_Shared_Variable_Control_Aspects to verify matching rules
68	between formal and actual types. Note that an array type with
69	aspect Atomic_Components is considered compatible with an array
70	type whose component type is Atomic, even though the array types
71	do not carry the same aspect.
72	* sem_ch13.adb (Analyze_One_Aspect): Allow shared variable
73	control aspects to appear on formal types.
74	(Rep_Item_Too_Early): Exclude aspects on formal types.
75	* sem_prag.adb (Mark_Type): Handle properly pragmas that come
76	from aspects on formal types.
77	(Analyze_Pragma, case Atomic_Components): Handle formal types.
78
792019-12-18  Eric Botcazou  <ebotcazou@adacore.com>
80
81	* cstand.adb (Create_Standard): Remove duplicate line and
82	adjust.
83
842019-12-18  Javier Miranda  <miranda@adacore.com>
85
86	* debug.adb: Document -gnatd_K as a reserved switch for the
87	detection of known problem issues of previous releases.
88
892019-12-18  Ghjuvan Lacambre  <lacambre@adacore.com>
90
91	* par-ch13.adb: Check if declarations allow aspect
92	specifications.
93
942019-12-18  Piotr Trojanek  <trojanek@adacore.com>
95
96	* einfo.ads (Is_Ghost_Entity): Fix typo in comment.
97
982019-12-18  Eric Botcazou  <ebotcazou@adacore.com>
99
100	* layout.adb (Layout_Type): In the case of composite types, do
101	not copy the Esize onto the RM_Size if the latter is not set.
102	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>:
103	Also cap the alignment if an Object_Size clause has been
104	specified.  Pass VAR_DECL in the call to validate_size for the
105	Esize of a type.
106	(validate_size): Be prepared to give an error on an Object_Size
107	clause.
108
1092019-12-18  Eric Botcazou  <ebotcazou@adacore.com>
110
111	* einfo.ads (Handling of Type'Size Value): Add references to the
112	introduction of Object_Size in Ada 2020.
113	* sem_eval.adb (Subtypes_Statically_Match): Likewise.
114
1152019-12-18  Bob Duff  <duff@adacore.com>
116
117	* sem_ch3.adb (Derive_Subprogram): Do not set the
118	Requires_Overriding flag in the above-mentioned case.
119
1202019-12-18  Bob Duff  <duff@adacore.com>
121
122	* sem_ch8.adb (Note_Redundant_Use): It was already checking for
123	a use clause in the visible part of the child. Add an additional
124	check for a use clause in the context clause of the child.
125
1262019-12-16  Bob Duff  <duff@adacore.com>
127
128	* errout.adb (Handle_Serious_Error): Disable the above-mentioned
129	warnings.
130
1312019-12-16  Bob Duff  <duff@adacore.com>
132
133	* errout.adb, errout.ads: Improve comments.
134
1352019-12-16  Bob Duff  <duff@adacore.com>
136
137	* sem_util.ads: Minor comment fix.
138
1392019-12-16  Bob Duff  <duff@adacore.com>
140
141	* errout.ads, errout.adb (Is_Size_Too_Small_Message): Check for
142	"size for" instead of "size for& too small, minimum allowed is
143	^".
144
1452019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
146
147	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Set only
148	the RM_Size on the subtype built for a Component_Size clause
149	when the component type is a biased integer type.
150
1512019-12-16  Arnaud Charlet  <charlet@adacore.com>
152
153	* socket.c: Shutdown warning.
154
1552019-12-16  Arnaud Charlet  <charlet@adacore.com>
156
157	* libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level.
158
1592019-12-16  Arnaud Charlet  <charlet@adacore.com>
160
161	* libgnat/s-aotase.adb, libgnat/s-aotase.ads,
162	libgnat/s-atoope.ads, libgnat/s-atopar.adb,
163	libgnat/s-atopar.ads, libgnat/s-atopex.adb,
164	libgnat/s-atopex.ads: New files.
165	* libgnat/s-atopri.ads: Add new intrinsics.
166	* Makefile.rtl: Add new runtime files.
167	* impunit.adb: Add new units to Ada 2020 list.
168
1692019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
170
171	* freeze.adb (Check_Strict_Alignment): Remove new check on
172	Has_Aliased_Components for array types.
173
1742019-12-16  Ed Schonberg  <schonberg@adacore.com>
175
176	* sem_ch4.adb (Try_Container_Indexing): In the case of a derived
177	container type, use the base type to look for candidate indexing
178	operations, because the object may be a constrained subtype or
179	itype with no explicit declaration.  Candidate indexing
180	operations are found in the same scope and list of declarations
181	as the declaration of the base type.
182
1832019-12-16  Ed Schonberg  <schonberg@adacore.com>
184
185	* scng.adb (Scan): In Ada2020, a left-bracket indicates the
186	start of an homogenous aggregate.
187	* par-ch4.adb (P_Reduction_Attribute_Reference): New procedure.
188	(P_Aggregate): Recognize Ada2020 bracket-delimited aggregates.
189	(P_Primary): Ditto.
190	* par-util.adb (Comma_Present): Return false on a right bracket
191	in Ada2020, indicating the end of an aggregate.
192	* snames.ads-tmpl: Introduce Name_Reduce and Attribute Reduce.
193	* sinfo.ads, sinfo.adb (Is_Homogeneous_Aggregate): New flag on
194	aggregates, to designate an Ada2020 array or container aggregate
195	that is bracket-delimited in the source.
196	* sem_attr.adb (Analyze_Attribute): For attribute Reduce, verify
197	that two arguments are present, and verify that the prefix is a
198	stream or an object that is iterable (array or contrainer).
199	(Resolve_Attribute): For attribute Reduce, resolve initial value
200	with the type of the context. Type-checking of element type of
201	prefix is performed after expansion.
202	* exp_attr.adb (Expand_N_Attribute_Reference): For attribute
203	Reduce, expand into a loop: a) If prefix is an aggregate with a
204	single iterated component association, use its iterator
205	specification to construct a loop, b) If prefix is a name, build
206	a loop using an element iterator loop.
207	* scans.ads: Add brackets tokens.
208
2092019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
210
211	* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to
212	validate_size.
213	(gnat_to_gnu_component_type): Likewise.
214	(gnat_to_gnu_field): Likewise and pass string for error messages.
215	(components_need_strict_alignment): Remove test on Is_Aliased and
216	add test for the independence of the component.
217	(validate_size): Add S1 and S2 string parameters and use them to
218	give better error messages for fields.  Tweak a couple of messages.
219	* einfo.ads (Has_Independent_Components): Document more cases.
220	(Is_Independent): Likewise.
221	(Strict_Alignment): Document new semantics.
222	* exp_ch9.adb (Install_Private_Data_Declarations): Also set the
223	Is_Independent flag along with Is_Aliased on the renaming
224	entity.
225	* freeze.adb (Size_Known): Remove always-false test and add test
226	for the strict-alignment on the record type.  Remove redundant
227	tests and add test for the strict-alignment on the component
228	type.
229	(Check_Strict_Alignment): Set the flag if the type is by-ref and
230	remove now redundant conditions.  Set the flag on an array type
231	if it has aliased components.  In the record type case, do not
232	set type for C_Pass_By_Copy convention.
233	(Freeze_Array_Type): Move code checking for conflicts between
234	representation aspects and clauses to before specific handling
235	of packed array types. Give a warnind instead of an error for a
236	conflict with pragma Pack.  Do not test Has_Pragma_Pack for the
237	specific handling of packed array types.
238	(Freeze_Record_Type): Move error checking of representation
239	clause to...
240	(Freeze_Entity): ...here after Check_Strict_Alignment is called.
241	* sem_aggr.adb (Array_Aggr_Subtype): Also set the Is_Independent
242	flag along with Is_Aliased on the Itype.
243	* sem_ch13.adb (Check_Record_Representation_Clause): Do not set
244	the RM size for a strict-alignment type.
245	* sem_ch3.adb (Add_Interface_Tag_Components): Also set the
246	Is_Independent flag along with Is_Aliased on the tag.
247	(Add_Interface_Tag_Components): Likewise on the offset.
248	(Analyze_Component_Declaration): Likewise on the component.
249	(Analyze_Object_Declaration): Likewise on the object.
250	(Constrain_Array): Likewise on the array.
251	(Record_Type_Declaration: Likewise on the tag.
252	(Array_Type_Declaration): Also set the
253	Has_Independent_Components flag along with
254	Has_Aliased_Components on the array.
255	(Copy_Array_Base_Type_Attributes): Copy
256	Has_Independent_Components.
257	(Copy_Array_Subtype_Attributes): Copy Is_Atomic, Is_Independent
258	and Is_Volatile_Full_Access.
259	(Analyze_Iterator_Specification): Set Is_Independent on the loop
260	variable according to Independent_Components on the array.
261	* sem_ch5.adb: Likewise.
262	* sem_ch6.adb (Process_Formals): Also set the Is_Independent
263	flag along with Is_Aliased on the formal.
264
2652019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
266
267	* sem_ch8.adb (Analyze_Object_Renaming): Set Atomic, Independent
268	and Volatile_Full_Access aspects on the entity of the renaming
269	the same way as the Volatile aspect is set.
270	* sem_util.ads (Is_Atomic_Object_Entity): Move declaration to...
271	(Is_Independent_Object): New function.
272	(Is_Volatile_Full_Access_Object): Likewise.
273	* sem_util.adb (Is_Atomic_Object_Entity): ...here.
274	(Prefix_Has_Atomic_Components): Minor tweak.
275	(Is_Atomic_Object): Test Is_Atomic on the Etype uniformly.
276	(Is_Atomic_Or_VFA_Object): Call Is_Volatile_Full_Access_Object.
277	(Is_Independent_Object): New predicate.
278	(Is_Subcomponent_Of_Atomic_Object): Remove redundant test.
279	(Is_Volatile_Full_Access_Object): New predicate.
280	(Is_Volatile_Prefix): Rename into...
281	(Prefix_Has_Volatile_Components): ... and call
282	Is_Volatile_Object.
283	(Object_Has_Volatile_Components): Delete.
284	(Is_Volatile_Object): Simplify.
285	* gcc-interface/trans.c (node_is_volatile_full_access): Adjust
286	comment.
287
2882019-12-16  Bob Duff  <duff@adacore.com>
289
290	* par.adb: Add Scopes function to do range checking on the scope
291	stack.  Call Scopes all over the parser.  Add
292	SIS_Aspect_Import_Seen flag.
293	* par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen
294	to False at the start, and check it at the end.
295	* par-ch13.adb (Get_Aspect_Specifications): Set
296	SIS_Aspect_Import_Seen to True when appropriate.
297	* par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb,
298	par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb,
299	par-util.adb: Call Scopes.
300
3012019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
302
303	* sem_prag.adb (Atomic_Components): Remove local variable and
304	fix consistency issues.  Call Component_Type on the Etype of E.
305	(Independent_Components): Remove local variable.
306	* sem_util.adb (Is_Subcomponent_Of_Atomic_Object): Properly deal
307	with prefixes that are access values.
308	* gcc-interface/trans.c (atomic_acces_t): New enumeral type.
309	(node_is_atomic) <N_Indexed_Component>: Test the prefix.
310	(node_has_volatile_full_access): Rename into...
311	(node_is_volatile_full_access): ...this.
312	(node_is_component): New predicare.
313	(gnat_strip_type_conversion): Delete.
314	(outer_atomic_access_required_p): Likewise.
315	(atomic_access_required_p): Rename into...
316	(get_atomic_access): ...this.  Implement the 3 different semantics
317	of Atomic and Volatile_Full_Access.
318	(simple_atomic_access_required_p): New predicate.
319	(Call_to_gnu): Remove outer_atomic_access parameter and change the
320	type of atomic_access parameter to atomic_acces_t.  Replace call to
321	atomic_access_required_p with simple_atomic_access_required_p for
322	the in direction and call get_atomic_access for the out direction
323	instead of [outer_]atomic_access_required_p.
324	(lhs_or_actual_p): Constify local variables.
325	(present_in_lhs_or_actual_p): Likewise.
326	(gnat_to_gnu) <N_Identifier>: Replace call to atomic_access_required_p
327	with simple_atomic_access_required_p.
328	<N_Explicit_Dereference>: Likewise.
329	<N_Indexed_Component>: Likewise.
330	<N_Selected_Component>: Likewise.
331	<N_Assignment_Statement>: Call get_atomic_access for the name instead
332	of [outer_]atomic_access_required_p.  Adjust call to Call_to_gnu.
333	<N_Function_Call>: Adjust call to Call_to_gnu.
334	(get_controlling_type): Fix typo in comment.
335
3362019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
337
338	* fe.h (Ada_Version_Type): New typedef.
339	(Ada_Version): Declare.
340	* opt.ads (Ada_Version_Type): Add Convention C and WARNING line.
341	(Ada_Version): Add WARNING line.
342	(Exception_Mechanism_Type): Likewise.
343
3442019-12-16  Gary Dismukes  <dismukes@adacore.com>
345
346	* checks.adb, sem_util.adb: Minor reformatting and U.S. spelling
347	adjustment.
348
3492019-12-16  Bob Duff  <duff@adacore.com>
350
351	* sem_ch10.adb (Analyze_Subunit): Give an error if the subunit
352	is not a proper body. This hides the confusing "duplicate body"
353	message that was previously given.
354
3552019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
356
357	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document
358	third special case of renamings requiring special handling.
359	(Evaluation_Required): Return true for an atomic or VFA prefix.
360
3612019-12-16  Ed Schonberg  <schonberg@adacore.com>
362
363	* checks.adb (Apply_Float_Conversion_Check): Use node of type
364	conversion and not its parent, when inserting the declaration
365	for the temporary that hold the result of the conversion.
366	Previously the declaration was inserted above the parent of the
367	conversion, apparently as a small optimization for the
368	subsequent traversal in Insert_Actions.  Unfortunately a similar
369	optimization takes place in Insert_Actions, assuming that the
370	insertion point must be above the expression that creates the
371	actions to insert.  This is not correct in the presence of
372	conditional expressions (i.e.  since Ada2012), where the
373	insertion must be in the list of actions attached to the current
374	alternative.
375
3762019-12-16  Bob Duff  <duff@adacore.com>
377
378	* sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we
379	still need Size_Known_At_Compile_Time, because when the size
380	really is known, sometimes only one or the other of these is
381	True.
382
3832019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
384
385	* sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for
386	components whose type is Volatile_Full_Access or which are
387	subject to the aspect/pragma individually.
388	* sem_util.ads (Is_Atomic_Object_Entity): Small comment fix.
389
3902019-12-16  Yannick Moy  <moy@adacore.com>
391
392	* exp_ch6.adb: Fix comment.
393	* sem_res.adb (Resolve_Call): Do not check No_Recursion
394	restriction or indirectly No_Secondary_Stack restriction, when
395	inside an ignored ghost subprogram.
396
3972019-12-16  Arnaud Charlet  <charlet@adacore.com>
398
399	* impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020
400	units.
401	* Makefile.rtl: Enable new file.
402	* libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads,
403	libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads,
404	libgnat/a-nubinu.ads: New files. Provide default standalone
405	implementation of Ada.Numerics.Big_Numbers.Big_* based on
406	System.Generic_Bignum.
407	* libgnat/a-nbnbin__gmp.adb: Alternate implementation of
408	Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled
409	for now.
410	* libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple
411	wrapper on top of s-genbig.ads.
412	* libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making
413	s-bignum generic for reuse in Ada.Numerics.Big_Numbers.
414
4152019-12-16  Bob Duff  <duff@adacore.com>
416
417	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
418	Correct documentation of -gnatw_C switch
419	* gnat_ugn.texi: Regenerate.
420
4212019-12-16  Joel Brobecker  <brobecker@adacore.com>
422
423	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
424	(_Switches_for_gnatbind): Reword the section explaining the
425	impact of -minimal on debugging.
426	* gnat_ugn.texi: Regenerate.
427
4282019-12-16  Gary Dismukes  <dismukes@adacore.com>
429
430	* libgnat/g-exptty.adb, libgnat/g-exptty.ads: Typo fixes and
431	minor reformatting.
432
4332019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
434
435	* exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): New predicate.
436	(Expand_Actuals): Use it to decide whether to add call by copy
437	code as per the RM C.6(19) clause.
438	* fe.h (Is_Atomic_Object): Remove.
439	(Is_Volatile_Object): Likewise.
440	* sem_util.ads (Is_Atomic_Object): Remove WARNING note.
441	(Is_Volatile_Object): Likewise.
442	* gcc-interface/trans.c (atomic_or_volatile_copy_required_p): Delete.
443	(Call_to_gnu): Do not implement the  RM C.6(19) clause.
444
4452019-12-16  Ghjuvan Lacambre  <lacambre@adacore.com>
446
447	* sem_ch12.adb (Validate_Access_Subprogram_Instance): Add
448	Can_Never_Be_Null checks.
449
4502019-12-16  Eric Botcazou  <ebotcazou@adacore.com>
451
452	* doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document
453	extension of the no-aliasing rule to any subcomponent.
454	* freeze.adb (Freeze_Object_Declaration): Small comment tweak.
455	(Freeze_Record_Type): Do not deal with delayed aspect
456	specifications for components here but...
457	(Freeze_Entity): ...here instead.
458	* sem_ch12.adb (Instantiate_Object): Improve wording of errors
459	given for legality rules in C.6(12) and implement the new rule
460	in C.6(13).
461	* sem_res.adb (Resolve_Actuals): Likewise.
462	* sem_prag.adb (Check_Atomic_VFA): New procedure implementing
463	the new legality rules in C.6(13).
464	(Process_Atomic_Independent_Shared_Volatile): Call
465	Check_Atomic_VFA to check the legality rules.  Factor out code
466	marking types into...
467	(Mark_Type): ...this new procedure.
468	(Check_VFA_Conflicts): Do not check the legality rules here.
469	(Pragma_Atomic_Components): Call Check_Atomic_VFA on component
470	type.
471	* sem_util.ads (Is_Subcomponent_Of_Atomic_Object): Declare.
472	* sem_util.adb (Is_Subcomponent_Of_Atomic_Object): New
473	predicate.
474	* gnat_rm.texi: Regenerate.
475
4762019-12-13  Gary Dismukes  <dismukes@adacore.com>
477
478	* doc/gnat_rm/implementation_defined_pragmas.rst: Minor
479	rewording of one sentence.
480	* gnat_rm.texi: Regenerate.
481
4822019-12-13  Arnaud Charlet  <charlet@adacore.com>
483
484	* exp_unst.adb (Unnest_Subprogram): Account for trees produced
485	by Annex E constructs.
486
4872019-12-13  Ghjuvan Lacambre  <lacambre@adacore.com>
488
489	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
490	Initialize_Scalars documentation.
491	* gnat_rm.texi: Regenerate.
492
4932019-12-13  Javier Miranda  <miranda@adacore.com>
494
495	* sem_ch13.adb (Analyze_Aspect_Specification): Processing a
496	precondition, if the expression is of the form A and then B, do
497	not generate separate Pre/Post aspects for the separate clases
498	when we are processing a generic unit. Required to avoid
499	reporting spurious visibility errors on the instantiations.
500
5012019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
502
503	* sem_res.adb (Resolve_Actuals): Give canonical error for
504	illegal case of atomic/volatile parameter also if the formal is
505	aliased.
506
5072019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
508
509	* sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses.
510	* sem_util.adb (Is_Atomic_Object): For an indexed component,
511	only look at the Has_Atomic_Components aspect of the prefix and
512	do not recurse on it; for a selected component, do not look at
513	the prefix.
514	(Is_Atomic_Or_VFA_Object): Minor tweak.
515
5162019-12-13  Arnaud Charlet  <charlet@adacore.com>
517
518	* libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration):
519	New procedure.
520	(Split, Image): Use Split_Duration. Update Image spec.
521
5222019-12-13  Javier Miranda  <miranda@adacore.com>
523
524	* exp_unst.adb (Unnest_Subprogram): Generate an extra temporary
525	to facilitate the C backend processing dereferences.
526
5272019-12-13  Javier Miranda  <miranda@adacore.com>
528
529	* sem_prag.adb (Analyze_Pragma): Propagate the
530	Linker_Section_Attribute to the ultimate alias of the subprogram
531	to facilitate the C backend processing this attribute.
532
5332019-12-13  Yannick Moy  <moy@adacore.com>
534
535	* sem_util.adb (Original_Aspect_Pragma_Name): Go through
536	Original_Node for pragma.
537
5382019-12-13  Piotr Trojanek  <trojanek@adacore.com>
539
540	* exp_aggr.adb, exp_unst.adb: Minor fix typo in comment.
541
5422019-12-13  Steve Baird  <baird@adacore.com>
543
544	* sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call
545	when testing whether a type is a general access type.
546
5472019-12-13  Javier Miranda  <miranda@adacore.com>
548
549	* exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an
550	extra temporary for cases unsupported by the C backend.
551
5522019-12-13  Steve Baird  <baird@adacore.com>
553
554	* einfo.ads: Correct comment for Derived_Type_Link to reflect
555	that fact that this function is now used for more than just
556	generation of warnings.
557	* sem_ch3.adb (Build_Derived_Type): Do not call
558	Set_Derived_Type_Link if the derived type and the parent type
559	are in different compilation units. Such a derivation cannot be
560	a problematic "early" derivation (identifying these is what the
561	Derived_Type_Link attribute is used for) and we don't like
562	inter-unit references that go in the opposite direction of
563	semantic dependencies.
564	* sem_ch13.adb (Is_Type_Related_Rep_Item): A new function,
565	analogous to the existing function Is_Operational_Item.
566	(Rep_Item_Too_Late): Generate a hard error (with same text as
567	the warning that was previously being generated) if the
568	AI12-0109 legality rule is violated.
569
5702019-12-13  Eric Botcazou  <ebotcazou@adacore.com>
571
572	* doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to
573	Volatile_Full_Access wording in GNAT RM.
574	* gnat_rm.texi: Regenerate.
575
5762019-12-13  Gary Dismukes  <dismukes@adacore.com>
577
578	* exp_attr.adb (Expand_N_Attribute_Reference,
579	Attribute_Address): Suppress generation of a call to
580	Base_Address in the case where the Address attribute is being
581	used to initialize a corresponding component of an activation
582	record.
583	(Is_Unnested_Component_Init): New function to determine whether
584	an attribute reference for Address is used to initialized a
585	component of an activation record object that corresponds to the
586	object denoted by the prefix of the attribute (an assignment
587	used in support of unnesting for back ends like LLVM).
588
5892019-12-13  Ed Schonberg  <schonberg@adacore.com>
590
591	* sem_res.adb (Resolve): IF an entity reference is overloaded
592	because its type has an Implicit_Dereference aspect, we must
593	examine the discriminants of the type to determine whether an
594	explicit dereference must be inserted for use in code
595	generation. Previously this was done for other expressions but
596	not for entity references by themselves.  This was sufficient to
597	handle uses of the aspect in container handling and iteration,
598	but not more generally.
599
6002019-12-13  Javier Miranda  <miranda@adacore.com>
601
602	* exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the
603	interface type).
604	* exp_disp.adb (Expand_Interface_Thunk): Using the added formal
605	to ensure the correct profile of the thunk generated for
606	predefined primitives; in addition, the added formal is also
607	used to perform a check that ensures that the controlling type
608	of the thunk is the one expected by the GCC backend.
609	(Make_Secondary_DT, Register_Primitive): Adding the new formal
610	to the calls to Expand_Interface_Thunk.
611	* exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new
612	formal to the call to Expand_Interface_Thunk.
613	* exp_intr.adb (Expand_Unc_Deallocation): When deallocating a
614	controlled type and the call to unchecked deallocation is
615	performed with a pointer to one of the convered interface types,
616	displace the pointer to the object to reference the base of the
617	object to deallocate its memory.
618	* gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the
619	controlling type of the thunk is an interface type.
620
6212019-12-13  Bob Duff  <duff@adacore.com>
622
623	* exp_attr.adb (Is_Available): Remove this function, and replace
624	all calls with RTE_Available. RTE_Available will return True if
625	"not Configurable_Run_Time_Mode". Remove the "???" comment.
626
6272019-12-13  Ed Schonberg  <schonberg@adacore.com>
628
629	* sem_ch7.adb (Analyze_Package_Body_Helper): Do not call
630	Declare_Inherited_Private_Subprograms on s child body: the
631	required operations have already been created when analyzing the
632	corresponding package declaration. This prevents a redeclaration
633	of inehrited operation, and a crash when inserting the new
634	operation in the current scope.
635
6362019-12-13  Yannick Moy  <moy@adacore.com>
637
638	* sem_prag.adb (Analyze_Depends_In_Decl_Part,
639	Analyze_Global_In_Decl_Part,
640	Analyze_Refined_Depends_In_Decl_Part,
641	Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of):
642	Skip redundant checking involving visibility inside
643	instantiations.
644
6452019-12-13  Yannick Moy  <moy@adacore.com>
646
647	* sem_res.adb (Resolve_Call): Prevent inlining inside while loop
648	conditions.
649	* sem_util.adb, sem_util.ads (In_While_Loop_Condition): New
650	query function.
651
6522019-12-13  Bob Duff  <duff@adacore.com>
653
654	* impunit.ads: Add Ada_202X_Unit.
655	* impunit.adb: Add a table Non_Imp_File_Names_2X analogous to
656	the other tables. Add code to search this table.
657	* opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently
658	always True.
659	* sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada
660	2020 unit is with-ed when Ada_Version < Ada_2020.  Change 'if'
661	to 'case': Full coverage rules rule.
662
6632019-12-13  Bob Duff  <duff@adacore.com>
664
665	* rtsfind.ads: Minor comment fix.
666
6672019-12-13  Gary Dismukes  <dismukes@adacore.com>
668
669	* sem_util.adb (Scope_Within): For the case of checking for a
670	task type procedure, check the Implementation_Base_Type of Curr.
671	(Scope_Within_Or_Same): For the case of checking for a task type
672	procedure, check the Implementation_Base_Type of Curr.
673
6742019-12-13  Arnaud Charlet  <charlet@adacore.com>
675
676	* impunit.adb (Non_Imp_File_Names_12): Add
677	Ada.Containers.Vectors.Generic_Parallel_Sorting.
678
6792019-12-13  Justin Squirek  <squirek@adacore.com>
680
681	* sem_res.adb (Resolve_Allocator): Add calls to
682	Check_Cond_Expr_Accessibility when a conditional expression is
683	found.
684	(Check_Allocator_Discrim_Accessibility_Exprs): Created to
685	recursively traverse a potentially compound conditional
686	expression and perform accessibility checks for each
687	alternative.
688	* sem_util.adb (Dynamic_Accessibility_Level): Avoid use of
689	original node of the expression in question so we can handle
690	dynamic accessibility in the limited case of a constant folded
691	conditional expression.
692
6932019-12-13  Steve Baird  <baird@adacore.com>
694
695	* exp_ch4.adb (Expand_N_Op_Eq.Is_Equality): Move this function
696	from within Expand_N_Op_Eq.Find_Equality out to immediately
697	within Expand_N_Op_Eq in order to give it greater visibility.
698	Add a new Typ parameter (defaulted to Empty) which, if
699	non-empty, means the function will return False in the case of
700	an equality op for some other type.
701	* (Expand_N_Op_Eq.User_Defined_Primitive_Equality_Op): A new
702	function. Given an untagged record type, finds the corresponding
703	user-defined primitive equality op (if any).  May return Empty.
704	Ignores visibility.
705	* (Expand_N_Op): For Ada2012 or later, check for presence of a
706	user-defined primitive equality op before falling back on the
707	usual predefined component-by-component comparison. If found,
708	then call the user-defined op instead.
709
7102019-12-13  Justin Squirek  <squirek@adacore.com>
711
712	* sem_ch6.adb (Check_Overriding_Indicator): Modify condition to
713	take into account the modification of the Is_Hidden flag within
714	generic instances.
715	(Verify_Overriding_Indicator): Add an exception for controlled
716	primitives within an instance.
717
7182019-12-13  Ed Schonberg  <schonberg@adacore.com>
719
720	* sinfo.ads, sinfo.adb (Aspect_On_Partial_View,
721	Set_Aspect_On_Partial_View): New flag for use by SPARK, to
722	indicate whether an aspect that appears on a type declaration
723	applies to the partial view of that type.
724	* sem_ch13.adb (Analyze_Aspect_Specification): Set new flag
725	appropriately.
726
7272019-12-12  Ed Schonberg  <schonberg@adacore.com>
728
729	* sem_ch13.adb (Same_Reprewentation): if the actual in a call is
730	a generic actual type, use its bsae type to determine whether a
731	change of representastion may be necessary for proper parameter
732	passing.
733
7342019-12-12  Ed Schonberg  <schonberg@adacore.com>
735
736	* sem_type.adb (Find_Unique_Type): A call to the universal
737	access equality operator requires one operand to be a universal
738	access, and the other to be an access type. There is no
739	requirement, as previously implied by this routine, that
740	pool-specific access types were illegal in this context.
741
7422019-12-12  Steve Baird  <baird@adacore.com>
743
744	* sem_ch6.adb
745	(New_Overloaded_Entity.Check_Conforming_Paramters): Add new
746	Conformance_Type parameter. With the value of
747	Subtype_Conformant, the behavior of Check_Conforming_Parameters
748	is unchanged.  The call in Matching_Entry_Or_Subprogram to
749	instead passes in Type_Conformant. This corresponds to the use
750	of "type conformant" in Ada RM 9.4(11.4/3).
751	(New_Overloaded_Entity.Has_Matching_Entry_Or_Subprogram): Add
752	new Normalized_First_Parameter_Type function to help in ignoring
753	the distinction between protected and access-to-protected first
754	parameters when checking prefixed-view profile matching. Replace
755	computations of the type of the first parameter with calls to
756	this function as appropriate.
757
7582019-12-12  Ed Schonberg  <schonberg@adacore.com>
759
760	* sem_ch5.adb: (Analyze_Iterator_Specification): If the
761	iteration is over a slice, complete the resolution of its
762	bounds, which may be aebitrary expressions. The previous
763	pre-analysis may have created itypes for the slice but has not
764	performed the expansion that for example may introduce actions
765	that specify explicit dereferences and run-time checks.
766
7672019-12-12  Ed Schonberg  <schonberg@adacore.com>
768
769	* sem_ch8.adb: Improve error message for dispatching subprogram
770	formals.
771
7722019-12-12  Gary Dismukes  <dismukes@adacore.com>
773
774	* exp_ch9.adb (Build_Protected_Entry): Set the Scope of the new
775	block to be the entity of the procedure created for the entry.
776
7772019-12-12  Steve Baird  <baird@adacore.com>
778
779	* sem_ch10.adb (Install_With_Clause): Check for the case of a
780	circular dependency involving a predefined (or GNAT-defined)
781	unit and handle that case by generating an appropropriate error
782	message.
783
7842019-12-12  Gary Dismukes  <dismukes@adacore.com>
785
786	* sem_ch4.adb, sem_res.adb: Minor reformatting.
787
7882019-12-12  Justin Squirek  <squirek@adacore.com>
789
790	* sem_ch4.adb (Analyze_One_Call): Add condition to check for
791	incorrectly resolved hidden controlled primitives.
792
7932019-12-12  Ed Schonberg  <schonberg@adacore.com>
794
795	* sem_res.adb: Fix processing of standard predefined operators.
796
7972019-12-12  Piotr Trojanek  <trojanek@adacore.com>
798
799	* libgnarl/a-dispat.ads (Yield): Update Global contract.
800
8012019-12-12  Piotr Trojanek  <trojanek@adacore.com>
802
803	* libgnat/g-altive.ads: Fix typo in comment.
804	* bindo-graphs.adb: Fix repeated words in comment.
805	* exp_ch4.adb: Likewise.
806	* exp_ch5.adb: Likewise.
807	* exp_ch7.adb: Likewise.
808	* exp_pakd.adb: Likewise.
809	* exp_unst.adb: Likewise.
810	* exp_util.adb: Likewise.
811	* freeze.adb: Likewise.
812	* inline.adb: Likewise.
813	* layout.adb: Likewise.
814	* sem_ch12.adb: Likewise.
815	* sem_ch13.adb: Likewise.
816	* sem_ch4.adb: Likewise.
817	* sem_ch9.adb: Likewise.
818	* sem_elab.adb: Likewise.
819	* doc/gnat_ugn/gnat_and_program_execution.rst: Fix repeated
820	words in user documentation.
821	* gnat_ugn.texi: Regenerate.
822
8232019-12-12  Eric Botcazou  <ebotcazou@adacore.com>
824
825	* exp_attr.adb (Expand_Size_Attribute): Look directly at the
826	prefix to detect the bit-packed slices.  Apply the checks last
827	in case the attribute needs to be processed by the back-end.
828	* exp_ch4.adb (Expand_N_Slice): Do not create a temporary for
829	a prefix of the Size attribute.
830
8312019-12-12  Steve Baird  <baird@adacore.com>
832
833	* sem_ch12.adb
834	(Instantiate_Type.Validate_Derived_Type_Instance): Implement the
835	legality check of AI12-0036
836
8372019-12-12  Ed Schonberg  <schonberg@adacore.com>
838
839	* sem_ch10.adb (Analyze_Subunit): Fix spurious visibility error
840	on subunit with optimization.
841
8422019-12-12  Arnaud Charlet  <charlet@adacore.com>
843
844	* raise-gcc.c (__gnat_personality_v0): Define for SEH.
845
8462019-12-12  Gary Dismukes  <dismukes@adacore.com>
847
848	* exp_ch9.adb (Build_Protected_Entry): Analyze the block created
849	to hold the declarations and statements of the protected entry
850	body right after it's created, and then call Reset_Scopes_To on
851	that block to reset the Scope of nested entities to the block
852	scope.
853	(Reset_Scope): Add handling for N_Freeze_Entity nodes, calling
854	Reset_Scopes recursively on the Actions of such nodes. Also, for
855	subprogram bodies that are encountered that might not have a
856	separate declaration (such as type init procedures), reset the
857	Scope of the subprogram's entity.
858
8592019-12-12  Justin Squirek  <squirek@adacore.com>
860
861	* sem_attr.adb (Analyze_Attribute): Add error message for
862	invalid usage of Attribute_Result.
863
8642019-12-12  Bob Duff  <duff@adacore.com>
865
866	* sem_attr.adb (Eval_Attribute): Never mark T'Descriptor_Size as
867	static, even if T is a static subtype, because otherwise we will
868	request the value of the attribute, which will crash because we
869	have not evaluated it.
870
8712019-12-12  Ed Schonberg  <schonberg@adacore.com>
872
873	* exp_ch5.adb (Expand_N_Assognment_Statement): Extend the
874	processing involving private types with unknown discriminants to
875	handle the case where the full view of the type is an
876	unconstrained array type.
877
8782019-12-12  Bob Duff  <duff@adacore.com>
879
880	* sem_ch4.adb (Transform_Object_Operation): Deal properly with
881	prefix notation in instances.
882
8832019-12-12  Claire Dross  <dross@adacore.com>
884
885	* libgnat/a-cofove.adb, libgnat/a-cfinve.adb (Find_Index): Use
886	Extended_Index for call to Last.
887
8882019-12-12  Gary Dismukes  <dismukes@adacore.com>
889
890	* sem_ch3.adb, sem_util.adb: Minor reformatting.
891
8922019-12-12  Bob Duff  <duff@adacore.com>
893
894	* doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric
895	documentation for average lengths
896
8972019-12-12  Ed Schonberg  <schonberg@adacore.com>
898
899	* sem_ch3.adb (Constrain_Access): Remove obsolete comments and
900	warning concerning component types of an access type whose
901	designated type is a constrained record type. (Such constraints
902	were previously ignored). Set scope of itype for component to
903	the scope of the enclosing record.
904	* sem_ch4.adb: Remove call to Set_Ekind.
905	* sem_util.adb (Build_Actual_Subtype_Of_Component): Handle
906	components whose type is an access to a constrained
907	discriminant, where the constraints may be given by the
908	discriminants of the enclosing type. New subprogram
909	Build_Access_Record_Constraint.
910
9112019-12-12  Justin Squirek  <squirek@adacore.com>
912
913	* exp_ch6.adb (Expand_Call_Helper): Added null case for
914	'Loop_Entry, 'Old, and 'Result when calculating whether to
915	create extra accessibility parameters.
916	* sem_util.adb (Dynamic_Accessibility_Level): Added null case
917	for 'Loop_Entry, 'Old, and 'Result when  calculating
918	accessibility level based on access-valued attributes.  Also
919	added special handling for uses of 'Loop_Entry when used in its
920	indexed component form.
921
9222019-12-12  Arnaud Charlet  <charlet@adacore.com>
923
924	* raise-gcc.c: Remove references to VMS
925
9262019-12-12  Eric Botcazou  <ebotcazou@adacore.com>
927
928	* atree.ads, comperr.ads, debug.ads, einfo.ads, elists.ads,
929	err_vars.ads, errout.ads, exp_ch11.ads, exp_code.ads,
930	exp_dbug.ads, exp_tss.ads, exp_util.ads, lib.ads, namet.ads,
931	nlists.ads, opt.ads, repinfo.ads, restrict.ads, scos.ads,
932	sem_aggr.ads, sem_aux.ads, sem_eval.ads, sem_util.ads,
933	sinfo.ads, sinput.ads, stringt.ads, targparm.ads, types.ads,
934	urealp.ads warnsw.ads: Add WARNING line(s) in commentary.
935	* atree.h, elists.h, namet.h, nlists.h, repinfo.h, scos.h,
936	stringt.h, types.h, uintp.h, urealp.h: Tidy up.
937	* fe.h: Likewise.  Document WARNING mark.
938
9392019-12-12  Dmitriy Anisimkov  <anisimko@adacore.com>
940
941	* libgnat/g-comlin.ads (Get_Argument): New routine similar to
942	original Get_Argument but with one more out parameter
943	End_Of_Arguments.
944	(Get_Arguments): Comment improved.
945	* libgnat/g-comlin.adb (Get_Argument): Implementation taken from
946	original Get_Argument and improved.
947	(Get_Argument): Calls new routine Get_Argument with additional
948	parameter.
949
9502019-12-03  Eric Botcazou  <ebotcazou@adacore.com>
951
952	* gcc-interface/utils.c (potential_alignment_gap): Delete.
953	(rest_of_record_type_compilation): Do not call above function.  Use
954	the alignment of the field instead of that of its type, if need be.
955	When the original field has variable size, always lower the alignment
956	of the pointer type.  Reset the bit-field status of the new field if
957	it does not encode a bit-field.
958
9592019-12-03  Eric Botcazou  <ebotcazou@adacore.com>
960
961	* gcc-interface/utils.c (fold_convert_size): New function.
962	(fold_bit_position): Invoke it to do further folding.
963
9642019-12-03  Eric Botcazou  <ebotcazou@adacore.com>
965
966	* gcc-interface/decl.c (gnat_to_gnu_subprog_type): With the Copy-In/
967	Copy-Out mechanism, do not promote the mode of the return type to an
968	integral mode if it contains a field on a non-integral type and even
969	demote it for 64-bit targets.
970
9712019-11-25  Eric Botcazou  <ebotcazou@adacore.com>
972
973	PR ada/92362
974	* gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>:
975	Use a temporary instead of clobbering the result with a freeze node.
976
9772019-11-25  Eric Botcazou  <ebotcazou@adacore.com>
978
979	PR ada/92575
980	* expect.c (__gnat_expect_poll [VMS, HPUX]): Fix typo.
981
9822019-11-06  Eric Botcazou  <ebotcazou@adacore.com>
983	    Alexandre Oliva  <oliva@adacore.com>
984
985	* gcc-interface/misc.c (callgraph_info_file): Delete.
986
9872019-10-27  Jakub Jelinek  <jakub@redhat.com>
988
989	* locales.c (iso_3166): Add missing comma after "United-States".
990
9912019-10-15  Arnaud Charlet  <charlet@adacore.com>
992
993	* Makefile.rtl (a-except.o): Put -O1 earlier so that it can be
994	overriden if needed by other variables.
995
9962019-10-12  Eric Botcazou  <ebotcazou@adacore.com>
997
998	PR ada/91995
999	* sem_ch8.adb (Chain_Use_Clause): Remove second argument in calls
1000	to Defining_Entity.
1001	* sem_elab.adb (Find_Unit_Entity): Likewise.  Deal with N_Subunit
1002	here in lieu of in Defining_Entity.
1003	* sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters.
1004	* sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters,
1005	and adjust accordingly.  Deal with N_Compilation_Unit.
1006
10072019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1008
1009	* gcc-interface/decl.c (elaborate_reference_1): Specifically deal with
1010	pointer displacement.
1011
1012	* gcc-interface/decl.c (components_to_record): Use proper name.
1013
1014	* gcc-interface/trans.c (Sloc_to_locus): Use standard types.
1015
10162019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1017
1018	* gcc-interface/decl.c (gnat_to_gnu_field): Adjust again the packing
1019	for a field without strict alignment and with an oversized clause.
1020
10212019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1022
1023	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the
1024	sign of the value when deciding to build a NEGATE_EXPR.
1025	<PLUS_EXPR>: Remove redundant line.
1026	<BIT_AND_EXPR>: Do the negation here.
1027
10282019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1029
1030	* gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Array_Subtype>: New
1031	case.  Return the base type if the subtype is not constrained.
1032
10332019-10-11  Eric Botcazou  <ebotcazou@adacore.com>
1034
1035	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_{Integer|Real}>:
1036	New case to deal with the definition of named numbers.
1037	<E_Variable>: Minor tweaks.  Set DECL_IGNORED_P on the CONST_DECL
1038	if a corresponding variable is built.
1039	* gcc-interface/trans.c (gnat_to_gnu) <N_Integer_Literal>: Return
1040	error_mark_node instead of aborting on overflow for named numbers.
1041	<N_Number_Declaration>: Reuse the <N_Object_Declaration> case and
1042	deal with error_mark_node specifically.
1043	* gcc-interface/utils.c (create_var_decl): Do not set DECL_IGNORED_P
1044	on CONST_DECLs.
1045	(gnat_write_global_declarations): Output global constants.
1046
10472019-10-10  Gary Dismukes  <dismukes@adacore.com>
1048
1049	* exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): When
1050	encountering a loop at the top level of a package declaration
1051	list (that is, within the declarations of a package spec or
1052	body) that has nested subprograms, call Unnest_Loop to create a
1053	new library-level procedure that will contain the loop, to allow
1054	for proper handling of up-level references from within nested
1055	subprograms, such as to loop parameters.
1056	(Unnest_Loop): New procedure that takes a loop statement and
1057	creates a new procedure body to enclose the loop statement,
1058	along with generating a call to the procedure.
1059
10602019-10-10  Arnaud Charlet  <charlet@adacore.com>
1061
1062	* freeze.adb (Freeze_Subprogram): Ensure constructor is a C++
1063	constructor.
1064
10652019-10-10  Gary Dismukes  <dismukes@adacore.com>
1066
1067	* libgnat/a-ststio.ads (File_Type): Apply pragma
1068	Preelaborable_Initialization to the type.
1069
10702019-10-10  Yannick Moy  <moy@adacore.com>
1071
1072	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not peek
1073	under private types whose completion is SPARK_Mode Off.
1074
10752019-10-10  Gary Dismukes  <dismukes@adacore.com>
1076
1077	* exp_ch4.adb, sem_cat.adb, sem_ch12.adb, sem_ch3.adb,
1078	sem_ch6.adb, sem_prag.adb, sem_util.adb, sem_util.ads: Minor
1079	typo fixes.
1080
10812019-10-10  Ed Schonberg  <schonberg@adacore.com>
1082
1083	* sem_warn.adb (Warn_On_Useless_Assignment): Do not warn if the
1084	second assignment is at the same source position as the first.
1085
10862019-10-10  Gary Dismukes  <dismukes@adacore.com>
1087
1088	* sem_util.adb (Enclosing_Subprogram): Handle the case of
1089	E_Entry_Family, returning the entry family's associated
1090	Protected_Body_Subprogram (as was already done for E_Entry).
1091	* exp_ch9.adb (Expand_N_Accept_Statement): Call Reset_Scopes_To
1092	on the block created for an accept statement to reset the scopes
1093	of any local entities to the block scope.
1094
10952019-10-10  Ed Schonberg  <schonberg@adacore.com>
1096
1097	* sem_ch12.adb (Analyze_Formal_Package_Declaration): Propagate
1098	an aspect specification for Abstract_State from generic package
1099	to formal package, so that it is available when analyzing the
1100	constructed formal.
1101
11022019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
1103
1104	* sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the
1105	actual subtype after its declaration when the type of the formal
1106	has a predicate.
1107
11082019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
1109
1110	* sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use
1111	the Esize of the component to compute its layout, but only the
1112	Component_Clause.  Do not issue a warning for the _Tag
1113	component.  Also set the Esize of the component at the end of
1114	the layout.
1115	(Analyze_Record_Representation_Clause): Remove Hbit local
1116	variable.  Lay out the Original_Record_Component only if it's
1117	distinct from the component.
1118	(Check_Record_Representation_Clause): Fix off-by-one bug for the
1119	Last_Bit of the artificial clause built for the _Tag component.
1120
11212019-10-10  Bob Duff  <duff@adacore.com>
1122
1123	* treepr.ads, treepr.adb (ppar): New procedure.
1124
11252019-10-10  Bob Duff  <duff@adacore.com>
1126
1127	* sem_aggr.adb (Resolve_Aggregate): Add missing cases in the
1128	Others_Allowed => True case -- N_Case_Expression_Alternative and
1129	N_If_Expression.  Use Nkind_In.
1130	* atree.adb, atree.ads, sinfo.adb, sinfo.ads (Nkind_In): New
1131	16-parameter version.
1132
11332019-10-10  Ed Schonberg  <schonberg@adacore.com>
1134
1135	* sem_aggr.adb (Resolve_Array_Aggregate): Set properly the
1136	Predicated_Parent link of an itype created for an aggregate, so
1137	that the predicate_function of the parent can support proofs on
1138	the object that it initializes.
1139
11402019-10-10  Eric Botcazou  <ebotcazou@adacore.com>
1141
1142	* sem_ch3.adb (Analyze_Number_Declaration): Set
1143	Debug_Info_Needed in the case where the expression is an integer
1144	literal.
1145
11462019-10-10  Yannick Moy  <moy@adacore.com>
1147
1148	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add subprograms
1149	with deep parameter or result type as not candidates for
1150	inlining.
1151
11522019-10-10  Vadim Godunko  <godunko@adacore.com>
1153
1154	* libgnat/g-exptty.ads (TTY_Process_Descriptor): Set default
1155	value for Process.
1156
11572019-10-10  Bob Duff  <duff@adacore.com>
1158
1159	* sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): In
1160	addition to saving the pragma for further processing, copy the
1161	pragma into the main unit if necessary.
1162
11632019-10-10  Bob Duff  <duff@adacore.com>
1164
1165	* einfo.ads, einfo.adb (Invariants_Ignored): New flag on types.
1166	This leaves just one unused flag.
1167	* sem_prag.adb (Invariant): Set the flag if appropriate.
1168	* exp_util.adb (Make_Invariant_Call): Check the flag.
1169
11702019-10-10  Arnaud Charlet  <charlet@adacore.com>
1171
1172	* gnat1drv.adb (Gnat1drv): Skip code generation when handling an
1173	incomplete unit with -gnatceg.
1174
11752019-10-10  Gary Dismukes  <dismukes@adacore.com>
1176
1177	* exp_ch7.adb (Check_Unnesting_Elaboration_Code): Various
1178	cleanups.
1179	(Set_Elab_Proc): New procedure to create the defining identifier
1180	for a procedure created to encapsulate top-level blocks
1181	occurring as a part of library package elaboration.
1182	(First_Local_Scope): Function replaced by
1183	Reset_Scopes_To_Elab_Proc.
1184	(Reset_Scopes_To_Elab_Proc): New recursive procedure based on
1185	First_Local_Scope, which it replaces, that is called to traverse
1186	the statements of a library package body to locate top-level
1187	blocks and determine whether they contain nested subprograms
1188	that might address library-level objects of the package. Such
1189	blocks (and loops) and certain top-level subprograms within the
1190	statements will have their Scope reset here to match an
1191	encapsulating procedure created by
1192	Check_Unnesting_Elaboration_Code that will contain the
1193	statements.
1194	(Check_Unnesting_In_Decls_Or_Stmts): Code for handling blocks
1195	factored out into Unnest_Block. Add handling for package
1196	declarations and bodies, making recursive calls for
1197	visible/private declarations, body declarations, statements, and
1198	exception handlers. Also remove test for Is_Compilation_Unit:
1199	caller tests for Is_Library_Level_Entity instead.  Also, this
1200	proc's name was changed from Check_Unnesting_In_Declarations.
1201	(Check_Unnesting_In_Handlers): New procedure to traverse a
1202	sequence of exception handlers, calling
1203	Check_Unnesting_In_Decls_Or_Stmts on the statements of each
1204	handler.
1205	(Expand_N_Package_Body): Call Check_Unnesting_* routines only
1206	when Unnest_Subprogram_Mode is set and the current scope is a
1207	library-level entity (which includes packages and instantiations
1208	nested directly within a library unit).
1209	(Expand_N_Package_Declaration): Call Check_Unnesting_* routines
1210	only when Unnest_Subprogram_Mode is set and the current scope is
1211	a library-level entity (which includes packages and
1212	instantiations nested directly within a library unit).
1213	(Unnest_Block): New procedure factored out of
1214	Check_Unnesting_In_Decls_Or_Stmts, for creating a new procedure
1215	to replace a block statement and resetting the Scope fields of
1216	the block's top-level entities.
1217
12182019-10-10  Anthony Leonardo Gracio  <leonardo@adacore.com>
1219
1220	* doc/gnat_ugn/about_this_guide.rst,
1221	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
1222	doc/gnat_ugn/getting_started_with_gnat.rst,
1223	doc/gnat_ugn/gnat_and_program_execution.rst, errout.ads,
1224	exp_ch3.adb, gnatls.adb, impunit.adb, lib-writ.ads, opt.ads,
1225	sem_ch7.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
1226	terminals.c: Replace GPS by GNAT Studio.
1227	* gnat_ugn.texi: Regenerate.
1228
12292019-10-10  Ed Schonberg  <schonberg@adacore.com>
1230
1231	* exp_ch6.adb (Expand_Simple_Function_Return_Statement): If the
1232	function to which the return statement applies is an
1233	Ignored_Ghost_Function, do not indicate that it uses the
1234	secondary stack when the return type is unconstrained.
1235
12362019-10-10  Bob Duff  <duff@adacore.com>
1237
1238	* libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb,
1239	libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb,
1240	libgnat/a-cborma.adb, libgnat/a-cborse.adb,
1241	libgnat/a-cdlili.adb, libgnat/a-cidlli.adb,
1242	libgnat/a-cihama.adb, libgnat/a-cihase.adb,
1243	libgnat/a-cimutr.adb, libgnat/a-ciorma.adb,
1244	libgnat/a-ciorse.adb, libgnat/a-cobove.adb,
1245	libgnat/a-cohama.adb, libgnat/a-cohase.adb,
1246	libgnat/a-coinve.adb, libgnat/a-comutr.adb,
1247	libgnat/a-conhel.adb, libgnat/a-convec.adb,
1248	libgnat/a-coorma.adb, libgnat/a-coorse.adb (Reference,
1249	Constant_Reference): Use Busy instead of Lock, so we forbid
1250	tampering with cursors, rather than tampering with elements.
1251
12522019-10-10  Ed Schonberg  <schonberg@adacore.com>
1253
1254	* sem_cat.adb (Set_Categorization_From_Pragma): Do not modify
1255	any visibility settings if there are no compilation_unit pragmas
1256	following the package declaration. Add comments for future
1257	cleanup.
1258
12592019-10-10  Patrick Bernardi  <bernardi@adacore.com>
1260
1261	* bindgen.adb (System_Secondary_Stack_Package_In_Closure):
1262	Renamed flag System_Secondary_Stack_Used to be clearer of what
1263	it represents.
1264	(Gen_Adainit): Refactor secondary stack related code to make it
1265	clearer.
1266	* rtsfind.adb (Load_RTU): Don't set Sec_Stack_Used flag here
1267	(RTE): Set Sec_Stack_Used if the System.Secondary_Stack is
1268	referenced, but not if we're ignoring ghost code.
1269
12702019-10-10  Piotr Trojanek  <trojanek@adacore.com>
1271
1272	* sem_prag.adb (Analyze_Global_In_Decl_Part): Simplify previous
1273	test, just like in a recent commit we simplified a similar test
1274	for Depends contract.
1275
12762019-10-04  Joseph Myers  <joseph@codesourcery.com>
1277
1278	* gcc-interface/utils.c (flag_isoc2x): New variable.
1279
12802019-10-01  Maciej W. Rozycki  <macro@wdc.com>
1281
1282	* gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable.
1283	(install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared
1284	library installation.
1285
12862019-10-01  Maciej W. Rozycki  <macro@wdc.com>
1287
1288	* gcc-interface/Make-lang.in (ada.install-common): Split into...
1289	(gnat-install-tools, gnat-install-lib): ... these.
1290
12912019-09-26  Alexandre Oliva <oliva@adacore.com>
1292
1293	* gcc-interface/decl.c (components_to_record): Set
1294	DECL_SIZE_UNIT for zero-sized fields.
1295
12962019-09-26  Arnaud Charlet  <charlet@adacore.com>
1297
1298	* osint.adb (OS_Time_To_GNAT_Time): Remove dependency on To_C/To_Ada
1299
13002019-09-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1301
1302	* libgnarl/s-osinte__solaris.ads (sysconf): Declare.
1303	(SC_NPROCESSORS_ONLN): Define.
1304	* libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare.
1305	* libgnarl/s-tasinf__solaris.adb (N_CPU): New variable.
1306	(Number_Of_Processors): New function.
1307
13082019-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1309
1310	* gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop
1311	if -Og is enabled.
1312	(build_return_expr): Do not perform NRV if -Og is enabled.
1313	(Subprogram_Body_to_gnu): Likewise.
1314	(gnat_to_gnu) <N_Simple_Return_Statement>: Likewise.
1315	(Handled_Sequence_Of_Statements_to_gnu): Do not inline finalizers if
1316	-Og is enabled.
1317	* gcc-interface/utils.c (convert_to_index_type): Return early if -Og
1318	is enabled.
1319
13202019-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1321
1322	* gcc-interface/trans.c (gnat_compile_time_expr_list): New variable.
1323	(Pragma_to_gnu): Rename local variable.  Save the (first) expression
1324	of pragma Compile_Time_{Error|Warning} for later processing.
1325	(Compilation_Unit_to_gnu): Process the expressions saved above.
1326
13272019-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1328
1329	* gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep
1330	on the underlying type of the node.
1331	(Call_to_gnu): Likewise with the type of the prefix.
1332
13332019-09-23  Eric Botcazou  <ebotcazou@adacore.com>
1334
1335	* gcc-interface/decl.c (components_to_record): Do not reorder fields
1336	in packed record types if they contain fixed-size fields that cannot
1337	be laid out in a packed manner.
1338
13392019-09-19  Tom Tromey  <tromey@adacore.com>
1340
1341	* gcc-interface/misc.c (gnat_get_type_bias): Return the bias
1342	when -fgnat-encodings=gdb.
1343
13442019-09-19  Steve Baird  <baird@adacore.com>
1345
1346	* sem_prag.adb (Preferred_String_Type): A new function. Given an
1347	expression, determines whether the preference rules defined for
1348	the third-and-later arguments of pragma Annotate suffice to
1349	determine the type of the expression. If so, then the preferred
1350	type is returned; if not then Empty is returned. Handles
1351	concatenations.
1352	(Analyze_Pragma): Replace previous code, which dealt only with
1353	string literals, with calls to the new Preferred_String_Type
1354	function, which also handles concatenations.
1355	* doc/gnat_rm/implementation_defined_pragmas.rst: Update
1356	documentation for pragma Annotate.
1357	* gnat_rm.texi: Regenerate.
1358
13592019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1360
1361	* exp_util.adb (Is_Possibly_Unaligned_Slice): Do not return true
1362	on pure alignment considerations if the target does not require
1363	the strict alignment of memory accesses.
1364
13652019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1366
1367	* sem_ch12.adb (Check_Private_View): Add a comment to indicate
1368	future work.
1369
13702019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1371
1372	* exp_aggr.adb (Has_Mutable_Components): Look at the underlying
1373	type of components to find out whether they are mutable.
1374
13752019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1376
1377	* sem_ch12.adb (Instantiate_Package_Body): Check that the body
1378	has not already been instantiated when the body of the parent
1379	was being loaded.
1380
13812019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1382
1383	* sem_util.adb (In_Instance): Test whether the current unit has
1384	been analyzed instead of being on the scope stack to detect the
1385	case of actuals of an instantiation of a generic child unit done
1386	as a compilation unit.
1387
13882019-09-19  Dmitriy Anisimkov  <anisimko@adacore.com>
1389
1390	* libgnat/g-socket.ads, libgnat/g-socket.adb
1391	(Create_Socket_Pair): New routine.
1392	* libgnat/g-socthi.ads (OS_Has_Socketpair): Boolean constant.
1393	(C_Socketpair): New imported routine.
1394	* libgnat/g-socthi__mingw.ads, libgnat/g-socthi__vxworks.ads
1395	(Default_Socket_Pair_Family): New constant.
1396	(C_Socketpair): New routine.
1397	* libgnat/g-socthi__mingw.adb, libgnat/g-socthi__vxworks.adb
1398	(C_Socketpair): Is separated in anouther file.
1399	* libgnat/g-sthcso.adb (C_Socketpair): Non UNIX implementation.
1400	* libgnat/g-stsifd__sockets.adb: Reuse C_Socketpair.
1401
14022019-09-19  Yannick Moy  <moy@adacore.com>
1403
1404	* sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous
1405	test.
1406
14072019-09-19  Ed Schonberg  <schonberg@adacore.com>
1408
1409	* sem_ch7.adb (Install_Parent_Private_Declarations): If a
1410	generic child unit is instantiated within a sibling child unit,
1411	the analysis of its private part requires that the private part
1412	of the ancestor be available, as is done when the context
1413	includes an instance of the ancestor.
1414
14152019-09-19  Yannick Moy  <moy@adacore.com>
1416
1417	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add special
1418	case for traversal functions.
1419
14202019-09-19  Yannick Moy  <moy@adacore.com>
1421
1422	* sem_prag.adb (Analyze_Global_In_Decl_Part): Do not issue an
1423	error when a constant of an access type is used as output in a
1424	Global contract.
1425	(Analyze_Depends_In_Decl_Part): Do not issue an error when a
1426	constant of an access type is used as output in a Depends
1427	contract.
1428
14292019-09-19  Arnaud Charlet  <charlet@adacore.com>
1430
1431	* exp_attr.adb: Remove obsolete comment.
1432
14332019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1434
1435	* sem_ch3.adb (Build_Derived_Access_Type): If this is an access-
1436	to-subprogram type, copy Can_Use_Internal_Rep from the parent.
1437
14382019-09-19  Yannick Moy  <moy@adacore.com>
1439
1440	* gcc-interface/Make-lang.in: Remove references to sem_spark.
1441	* sem_spark.adb, sem_spark.ads: Remove unit.
1442
14432019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1444
1445	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): Treat
1446	Machine_Rounding as an alias for Rounding.
1447	* sem_res.adb (Simplify_Type_Conversion): Likewise.
1448
14492019-09-19  Gary Dismukes  <dismukes@adacore.com>
1450
1451	* exp_unst.adb (Unnest_Subprogram): Bypass the transformation of
1452	up-level references unless Opt.Generate_C_Code is enabled.
1453
14542019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1455
1456	* exp_ch4.adb (Expand_Array_Equality): If optimization is
1457	enabled, generate a simple conjunction of comparisons for the
1458	specific case of constrained 1-dimensional 2-element arrays.
1459	Fix formatting.
1460
14612019-09-19  Piotr Trojanek  <trojanek@adacore.com>
1462
1463	* exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Remove.
1464	(Append_Homonym_Number): Use Homonym_Number instead of
1465	Get_Homonym_Number.
1466	* exp_util.ads, exp_util.adb (Homonym_Number): Mirror style of
1467	the removed Get_Homonym_Number routine, i.e. initialize local
1468	objects at declaration and refine the type of result.
1469	* sem_util.adb (Add_Homonym_Suffix): Use Homonym_Number instead
1470	of Get_Homonym_Number.
1471
14722019-09-19  Ed Schonberg  <schonberg@adacore.com>
1473
1474	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Simplify
1475	handling of expressions in predicates when the context is a
1476	generic unit.
1477
14782019-09-19  Bob Duff  <duff@adacore.com>
1479
1480	* sem_attr.adb (Resolve_Attribute): Make sure the secondary
1481	stack is properly managed in the case of a 'Range attribute in a
1482	loop.
1483
14842019-09-19  Raphael Amiard  <amiard@adacore.com>
1485
1486	* libgnat/a-cfhase.ads (Set): Add comments to public primitives.
1487
14882019-09-19  Raphael Amiard  <amiard@adacore.com>
1489
1490	* libgnat/a-cbhama.ads, libgnat/a-cbhase.ads,
1491	libgnat/a-chtgop.ads (Clear): Refine comments
1492
14932019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1494
1495	* sem_ch12.adb (Restore_Private_Views): Comment out new code
1496	that clear the Is_Generic_Actual_Type also on the full view.
1497
14982019-09-19  Bob Duff  <duff@adacore.com>
1499
1500	* exp_ch3.adb (Rewrite_As_Renaming): Return False if there are
1501	any aspect specifications, because otherwise Insert_Actions
1502	blows up.
1503
15042019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1505
1506	* exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add
1507	Bit_Packed_Array parameter and documet it. Always insert a copy
1508	if it is set True.
1509	(Expand_Actuals): Adjust the calls to
1510	Add_Simple_Call_By_Copy_Code.
1511
15122019-09-19  Bob Duff  <duff@adacore.com>
1513
1514	* xref_lib.adb (Get_Symbol_Name): If we reach EOF in the first
1515	loop without finding the symbol, return "???". Otherwise, it's
1516	an infinite loop.
1517	(Parse_EOL): Assert that we're not already at EOF.  Remove
1518	processing of LF/CR -- there are no operating systems that use
1519	that.
1520
15212019-09-19  Eric Botcazou  <ebotcazou@adacore.com>
1522
1523	* exp_ch6.adb (Is_Legal_Copy): Also return false for an aliased
1524	formal and a formal passed by reference in convention Ada.  Add
1525	missing guard to the existing test on Is_Valued_Procedure.
1526
15272019-09-19  Bob Duff  <duff@adacore.com>
1528
1529	* rtsfind.ads (RTE_Available): Improve comment.
1530
15312019-09-18  Bob Duff  <duff@adacore.com>
1532
1533	* exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Move call
1534	to RTE_Available later, so it doesn't disturb the elab order.
1535	The RE_Copy_Bitfield entity is defined in package
1536	System.Bitfields which has a dependency on package
1537	System.Bitfield_Utils, which has it its spec:
1538	   pragma Elaborate_Body;
1539	The query on RTE_Available forces loading and analyzing
1540	System.Bitfields and all its withed units.
1541
15422019-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1543
1544	* checks.ads (Alignment_Warnings_Record): Add P component.
1545	* checks.adb (Apply_Address_Clause_Check): Be prepared to kill
1546	the warning also if the clause is of the form X'Address.
1547	(Validate_Alignment_Check_Warning): Kill the warning if the
1548	clause is of the form X'Address and the alignment of X is
1549	compatible.
1550
15512019-09-18  Ed Schonberg  <schonberg@adacore.com>
1552
1553	* sem_res.adb (Set_Mixed_Node_Expression): If a conditional
1554	expression has universal_real alternaitves and the context is
1555	Universal_Fixed, as when it is an operand in a fixed-point
1556	multiplication or division, resolve the expression with a
1557	visible fixed-point type, which must be unique.
1558
15592019-09-18  Ed Schonberg  <schonberg@adacore.com>
1560
1561	* sem_ch3.adb (Constrain_Component_Type): For a discriminated
1562	type, handle the case of a constraint given by a conversion of a
1563	discriminant of the enclosing type. Necessary when compiling a
1564	discriminated task for a restricted run-time, when the generated
1565	Secondary_Stack component may be set by means of an aspect on
1566	the task type.
1567
15682019-09-18  Ed Schonberg  <schonberg@adacore.com>
1569
1570	* exp_aggr.adb (Expand_Record_Aggregate, Rewrite_Discriminant):
1571	After rewriting a reference to an outer discriminant as a
1572	selected component of the enclosing object, analyze the selected
1573	component to ensure that the entity of the selector name is
1574	properly set. This is necessary when the aggregate appears
1575	within an expression that may have been analyzed already.
1576
15772019-09-18  Justin Squirek  <squirek@adacore.com>
1578
1579	* sem_ch8.adb (Use_One_Type): Add guard to prevent warning on a
1580	reundant use package clause where there is no previous
1581	use_clause in the chain.
1582
15832019-09-18  Justin Squirek  <squirek@adacore.com>
1584
1585	* exp_ch4.adb (Expand_N_Type_Conversion): Add calculation of an
1586	alternative operand for the purposes of generating accessibility
1587	checks.
1588
15892019-09-18  Eric Botcazou  <ebotcazou@adacore.com>
1590
1591	* exp_aggr.adb (Build_Array_Aggr_Code): In STEP 1 (c), duplicate
1592	the expression and reset the Loop_Actions for each loop
1593	generated for an others choice.
1594
15952019-09-18  Justin Squirek  <squirek@adacore.com>
1596
1597	* einfo.adb, einfo.ads (Minimum_Accessibility): Added new field.
1598	(Set_Minimum_Accessibility): Added to set new field.
1599	(Minimum_Accessibility): Added to fetch new field.
1600	* exp_ch6.adb (Expand_Subprogram_Call): Modify calls to fetch
1601	accessibility levels to the new subprogram Get_Accessibility
1602	which handles cases where minimum accessibility might be needed.
1603	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Add section to
1604	generate a Minimum_Accessibility object within relevant
1605	subprograms.
1606	* sem_util.adb, sem_util.ads (Dynamic_Accessibility_Level):
1607	Additional documentation added and modify section to use new
1608	function Get_Accessibility.
1609	(Get_Accessibility): Added to centralize processing of
1610	accessibility levels.
1611
16122019-09-18  Steve Baird  <baird@adacore.com>
1613
1614	* sem_util.ads (Interval_Lists): A new visible package. This
1615	package is visible because it is also intended for eventual use
1616	in Sem_Eval.Subtypes_Statically_Compatible when that function is
1617	someday upgraded to handle static predicates correctly.  This
1618	new package doesn't really need to be visible for now, but it
1619	still seems like a good idea.
1620	* sem_util.adb (Gather_Components): Implement AI12-0086 via the
1621	following strategy. The existing code knows how to take a static
1622	discriminant value and identify the corresponding variant; in
1623	the newly-permitted case of a non-static value of a static
1624	subtype, we arbitrarily select a value of the subtype and find
1625	the corresponding variant using the existing code. Subsequently,
1626	we check that every other value of the discriminant's subtype
1627	corresponds to the same variant; this is done using the newly
1628	introduced Interval_Lists package.
1629	(Interval_Lists): Provide a body for the new package.
1630
16312019-09-18  Javier Miranda  <miranda@adacore.com>
1632
1633	* exp_ch4.adb (Expand_N_Op_Eq): The frontend assumes that we can
1634	do a bit-for-bit comparison of two access to protected
1635	subprogram pointers. However, there are two reasons why we may
1636	not be able to do that: (1) there may be padding bits for
1637	alignment before the access to subprogram, and (2) the access to
1638	subprogram itself may not be compared bit-for- bit because the
1639	activation record part is undefined: two pointers are equal iff
1640	the subprogram addresses are equal. This patch fixes it by
1641	forcing a field-by-field comparison.
1642	* bindgen.adb (Gen_Adainit): The type No_Param_Proc is defined
1643	in the library as having Favor_Top_Level, but when we create an
1644	object of that type in the binder file we don't have that
1645	pragma, so the types are different. This patch fixes this issue.
1646	* libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb,
1647	libgnarl/s-interr__sigaction.adb, libgnarl/s-interr__vxworks.adb
1648	(Is_Registered): This routine erroneously assumes that the
1649	access to protected subprogram is two addresses. We need to
1650	create the same record that the compiler makes to ensure that
1651	any padding is the same. Then we have to look at just the first
1652	word of the access to subprogram. This patch fixes this issue.
1653
16542019-09-18  Bob Duff  <duff@adacore.com>
1655
1656	* exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): The call
1657	to Copy_Bitfield is now enabled.
1658	(Expand_Assign_Array_Bitfield): Multiply 'Length times
1659	'Component_Size "by hand" instead of using 'Size.
1660
16612019-09-18  Vasiliy Fofanov  <fofanov@adacore.com>
1662
1663	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix minor
1664	formatting issue.
1665
16662019-09-18  Javier Miranda  <miranda@adacore.com>
1667
1668	* exp_disp.adb (Make_DT, Make_Secondary_DT): Remove generation
1669	of alignment representation clause for the following tables:
1670	Predef_Prims, Iface_DT, TSD, ITable, DT.
1671
16722019-09-18  Steve Baird  <baird@adacore.com>
1673
1674	* sem_eval.adb (Expr_Value): Do not fail "the type of a null
1675	literal must be an access type" assertion if errors have already
1676	been posted on the given node.
1677
16782019-09-18  Piotr Trojanek  <trojanek@adacore.com>
1679
1680	* exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Refine type
1681	from Nat to Pos.
1682	* sem_util.adb (Add_Homonym_Suffix): Refine type of a local
1683	variable.
1684
16852019-09-18  Yannick Moy  <moy@adacore.com>
1686
1687	* exp_dbug.adb (Append_Homonym_Number): Use new function
1688	Get_Homonym_Number.
1689	(Get_Homonym_Number): New function to return the homonym number.
1690	(Qualify_Entity_Name): Remove special case for GNATprove.
1691	* exp_dbug.ads (Get_Homonym_Number): Make the new function
1692	public for use in GNATprove.
1693	* frontend.adb (Frontend): Do not qualify names in GNATprove
1694	mode.
1695	* sem_util.adb (Unique_Name): Append homonym suffix where needed
1696	for entities which have local homonyms in the same scope.
1697
16982019-09-18  Nicolas Roche  <roche@adacore.com>
1699
1700	* libgnat/s-valrea.adb (Scan_Integral_Digits): New procedure.
1701	(Scan_Decimal_Digits): New procedure.
1702	(As_Digit): New function.
1703	(Scan_Real): Use Scan_Integral_Digits and Scan_Decimal_Digits.
1704
17052019-09-18  Claire Dross  <dross@adacore.com>
1706
1707	* exp_attr.adb (Expand_N_Attribute_Reference): Call routine from
1708	Exp_Util to know the value of the Constrained attribute in the
1709	static case.
1710	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Make
1711	implicit dereferences inside the Constrained attribute explicit.
1712	* exp_util.ads, exp_util.adb
1713	(Attribute_Constrained_Static_Value): New routine to compute the
1714	value of a statically known reference to the Constrained
1715	attribute.
1716
17172019-09-18  Vadim Godunko  <godunko@adacore.com>
1718
1719	* libgnat/g-expect.adb (Expect_Internal): Don't include invalid
1720	file descriptors into the set of file descriptors for Poll.
1721	Raise Process_Died exception when computed set of file
1722	descriptors to monitor is empty.
1723
17242019-09-18  Frederic Konrad  <konrad@adacore.com>
1725
1726	* adaint.c: Include dosFsLib.h and vwModNum.h for VxWorks 6.
1727	(__gnat_rename): Map S_dosFsLib_FILE_NOT_FOUND to ENOENT.
1728
17292019-09-18  Steve Baird  <baird@adacore.com>
1730
1731	* freeze.adb (Freeze_Object_Declaration): Do not call
1732	Check_Large_Modular_Array when the object declaration being
1733	frozen is an ignored ghost entity.
1734
17352019-09-18  Tom Tromey  <tromey@adacore.com>
1736
1737	* make.adb (Initialize): Fix typo.
1738
17392019-09-18  Olivier Hainque  <hainque@adacore.com>
1740
1741	* libgnat/s-win32.ads (DWORD_PTR): New type, pointer size
1742	unsigned int.
1743	(SYSTEM_INFO): Use it for dwActiveProcessorMask.
1744
17452019-09-18  Arnaud Charlet  <charlet@adacore.com>
1746
1747	* doc/gnat_rm/implementation_defined_pragmas.rst: Improve doc on
1748	Warning_As_Error.
1749	* gnat_rm.texi: Regenerate.
1750
17512019-09-18  Arnaud Charlet  <charlet@adacore.com>
1752
1753	* doc/gnat_rm/implementation_defined_characteristics.rst,
1754	doc/gnat_rm/implementation_defined_pragmas.rst,
1755	doc/gnat_rm/implementation_of_specific_ada_features.rst: Remove
1756	remaining references to VMS support
1757	* gnat_rm.texi: Regenerate.
1758
17592019-09-18  Arnaud Charlet  <charlet@adacore.com>
1760
1761	* libgnat/s-stausa.adb: Fix a typo
1762
17632019-09-18  Bob Duff  <duff@adacore.com>
1764
1765	* libgnat/a-cbhama.adb, libgnat/a-cbhase.adb,
1766	libgnat/a-cbmutr.adb, libgnat/a-cborma.adb,
1767	libgnat/a-cborse.adb, libgnat/a-cobove.adb (Copy): Avoid reading
1768	the uninitialized variable C in the Checks = False case. Change
1769	variable to be a constant.
1770
17712019-09-18  Claire Dross  <dross@adacore.com>
1772
1773	* libgnat/a-cofuma.adb (Remove, Elements_Equal_Except,
1774	Keys_Included, Keys_Included_Except): Rename loop indexes and
1775	global constants from I to J.
1776
17772019-09-18  Arnaud Charlet  <charlet@adacore.com>
1778
1779	* exp_unst.adb (Unnest_Subprograms): Refine previous change.
1780
17812019-09-17  Claire Dross  <dross@adacore.com>
1782
1783	* libgnat/a-cofuma.ads, libgnat/a-cofuma.adb (Remove): New
1784	function which returns a copy of the input container without a
1785	given mapping.
1786
17872019-09-17  Yannick Moy  <moy@adacore.com>
1788
1789	* libgnat/s-arit64.adb (Double_Divide): Correctly handle the
1790	special case when rounding.
1791
17922019-09-17  Javier Miranda  <miranda@adacore.com>
1793
1794	* sem_ch3.adb (Complete_Private_Subtype): Propagate attributes
1795	Has_Attributes and Predicate_Function to the cloned subtype.
1796
17972019-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1798
1799	* sem.adb (Do_Analyze): Save Style_Check_Max_Line_Length on
1800	entry and restore it on exit instead of recomputing it.
1801
18022019-09-17  Tom Tromey  <tromey@adacore.com>
1803
1804	* exp_dbug.ads: Update character type comment.
1805
18062019-09-17  Yannick Moy  <moy@adacore.com>
1807
1808	* libgnat/s-arit64.adb (Double_Divide): Simplify needlessly
1809	complex computation. Fix comments.
1810	(Scaled_Divide): Fix comments. Explain why implementation does
1811	not suffer from bugs in Algorithm D from 2nd Edition of TAOCP.
1812
18132019-09-17  Yannick Moy  <moy@adacore.com>
1814
1815	* libgnat/s-arit64.adb (Scaled_Divide): Add protection against
1816	undesirable wrap-around.
1817
18182019-09-17  Yannick Moy  <moy@adacore.com>
1819
1820	* libgnat/s-arit64.adb (Double_Divide): Fix two possible
1821	overflows.
1822
18232019-09-17  Dmitriy Anisimkov  <anisimko@adacore.com>
1824
1825	* make_util.ads (On_Windows): Move...
1826	* osint.ads (On_Windows): There.
1827	* osint.adb (OS_Time_To_GNAT_Time): If odd incremented on
1828	Windows before conversion to Time_Stamp_Type.
1829
18302019-09-17  Yannick Moy  <moy@adacore.com>
1831
1832	* sem_spark.adb (Check_Declaration): Do not check the assignment
1833	from an illegal declaration.
1834
18352019-09-17  Bob Duff  <duff@adacore.com>
1836
1837	* doc/gnat_ugn/gnat_and_program_execution.rst: Clarify
1838	documentation.
1839	* gnat_ugn.texi: Regenerate.
1840	* libgnat/s-stausa.ads: Clarify comments.
1841
18422019-09-17  Steve Baird  <baird@adacore.com>
1843
1844	* sem_util.adb (Wrong_Type): In deciding to suppress a message,
1845	it is not enough for In_Instance to be True; in addition,
1846	In_Generic_Actual (Expr) must be False.
1847	* sem_type.adb (In_Generic_Actual): Fix bug where traversal of
1848	parents skips every other node.
1849
18502019-09-17  Claire Dross  <dross@adacore.com>
1851
1852	* sem_spark.adb (Get_Observed_Or_Borrowed_Expr): If the
1853	definition of a local borrower contains calls to traversal
1854	functions, the borrowed expression is the first parameter of the
1855	first traversal function call in the definition.
1856
18572019-09-17  Ed Falis  <falis@adacore.com>
1858
1859	* doc/gnat_rm/implementation_defined_pragmas.rst: Remove
1860	section.
1861	* gnat_rm.texi, gnat_ugn.texi: Regenerate.
1862
18632019-09-17  Vadim Godunko  <godunko@adacore.com>
1864
1865	* libgnat/g-exptty.ads (Close_Input): New subprogram.
1866	* libgnat/g-exptty.adb (Close_Input): New subprogram.
1867	(Close): Move close of TTY to Close_Input.
1868	* terminals.c (__gnat_close_tty): Set file descriptors to
1869	invalid value after close.
1870
18712019-09-17  Vadim Godunko  <godunko@adacore.com>
1872
1873	* libgnat/g-expect.adb (Expect_Internal): Try to call 'poll' few
1874	times.
1875
18762019-09-17  Vadim Godunko  <godunko@adacore.com>
1877
1878	* libgnat/g-expect.ads, libgnat/g-expect.adb (Close_Input): New
1879	subprogram.
1880	(Get_Command_Output): Call Close_Input to close input stream.
1881	(Expect_Internal): Likewise.
1882	(Close): Likewise.
1883	* libgnat/g-exptty.adb (Close): Likewise.
1884
18852019-09-17  Piotr Trojanek  <trojanek@adacore.com>
1886
1887	* sem_util.ads, sem_util.adb (Is_Attribute_Old): New utility
1888	routine.
1889
18902019-09-17  Yannick Moy  <moy@adacore.com>
1891
1892	* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add handling
1893	for dispatching operations.
1894
18952019-09-17  Ed Schonberg  <schonberg@adacore.com>
1896
1897	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In a
1898	generic context, for a Predicate aspect, use
1899	Preanalyze_Spec_Expression to verify conformance.
1900
19012019-09-17  Javier Miranda  <miranda@adacore.com>
1902
1903	* sem_ch3.adb (Constrain_Corresponding_Record): Propagate
1904	attribute Is_Tagged_Type.
1905
19062019-09-17  Javier Miranda  <miranda@adacore.com>
1907
1908	* exp_ch3.adb (Build_Record_Init_Proc): Do not generate code to
1909	adjust the tag component when the record is initialized with a
1910	raise expression.
1911	* sem_aggr.adb (Valid_Limited_Ancestor): Return True for
1912	N_Raise_Expression nodes.
1913	(Valid_Ancestor_Type): Return True for raise expressions.
1914	* sem_ch3.adb (Analyze_Component_Declaration): Do not report an
1915	error when a component is initialized with a raise expression.
1916	* sem_ch4.adb (Analyze_Qualified_Expression): Do not report an
1917	error when the aggregate has a raise expression.
1918
19192019-09-17  Piotr Trojanek  <trojanek@adacore.com>
1920
1921	* ali.ads: Fix casing in comment.
1922	* ali-util.ads, ali-util.adb (Read_Withed_ALIs): Remove
1923	Ignore_Errors parameter; it was only set to non-default value of
1924	True when running in GNATprove_Mode and wrongly reset to False
1925	when calling this routine recursively. Now in GNATprove mode we
1926	want it to be always True, so in fact it is equivalent to
1927	GNATProve_Mode flag itself (which was already used in this
1928	routine).
1929
19302019-09-17  Arnaud Charlet  <charlet@adacore.com>
1931
1932	* adaint.c (_REENTRANT, _THREAD_SAFE): Only define if needed.
1933
19342019-09-17  Arnaud Charlet  <charlet@adacore.com>
1935
1936	* libgnat/s-bitfie.ads (Val_Bits, Val_Bytes): Define from
1937	Long_Long_Integer'Size.
1938
19392019-09-17  Javier Miranda  <miranda@adacore.com>
1940
1941	* exp_ch6.ads (Needs_BIP_Task_Actuals): New subprogram.
1942	* exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): Code
1943	cleanup.
1944	(Check_Number_Of_Actuals): New subprogram.
1945	(Make_Build_In_Place_Call_In_Allocator): Adding assertion.
1946	(Make_Build_In_Place_Call_In_Anonymous_Context): Adding
1947	assertion.
1948	(Make_Build_In_Place_Call_In_Assignment): Adding assertion.
1949	(Make_Build_In_Place_Call_In_Object_Declaration): Code cleanup
1950	plus assertion addition.
1951	(Needs_BIP_Task_Actuals): New subprogram.
1952	* sem_ch6.adb (Create_Extra_Formals): Rely on
1953	Needs_BIP_Task_Actuals() to check if the master of the tasks to
1954	be created, and the caller's activation chain formals are
1955	needed.
1956
19572019-09-17  Bob Duff  <duff@adacore.com>
1958
1959	* libgnat/s-bituti.adb (Get_Val_2, Set_Val_2): Use new routines
1960	for getting and setting a Val_2, avoiding touching the second
1961	half when that half might not exist.
1962	* exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Correct
1963	tests for potential volatile or independent components. In
1964	particular, do not call Prefix unless we know it's a slice.
1965
19662019-09-17  Dmitriy Anisimkov  <anisimko@adacore.com>
1967
1968	* gsocket.h: Include sys/un.h.
1969	* s-oscons-tmplt.c (AF_UNIX): New constant generation.
1970	(SIZEOF_sockaddr_un): Idem.
1971	* libgnat/g-socket.ads (Family_Type): New value Family_Unix
1972	added.
1973	(Family_Inet_4_6): New subtype only for network families.
1974	(Sock_Addr_Type): Add Unbounded_String field for Family_Unix
1975	variant.
1976	(Unix_Socket_Address): Create Sock_Addr_Type from socket
1977	pathname.
1978	(Network_Socket_Address): Create Sock_Addr_Type from
1979	Inet_Addr_Type and Port_Type parameters.
1980	* libgnat/g-socket.adb: Support local unix address in socket
1981	routines.
1982	(Get_Address_Info): Disable warning about Result may be
1983	referenced before it has a value. Remove duplicated code to exit
1984	from Look_For_Supported.
1985	* libgnat/g-sothco.ads (Unix_Name_Length): New constant defining
1986	maximum number of characters in local socket address path.
1987	(Sockaddr): Add variant for Family_Unix address family. Move
1988	Sin_Port and Sin_Family to Family_Inet section. Add Sin6_Port
1989	and Sin6_Family to Family_Inet6 section.
1990	(Set_Address): Add out parameter Length to return valuable
1991	Sockaddr data length.
1992	(Get_Address): Add input parameter Length to set valuable
1993	Sockaddr data length.
1994	* libgnat/g-sothco.adb: Support local unix address in socket
1995	routines.
1996
19972019-09-17  Eric Botcazou  <ebotcazou@adacore.com>
1998
1999	* exp_attr.adb (Expand_Size_Attribute): Chain the special cases
2000	on the back-end path and rewrite the attribute appled to slices
2001	of bit-packed arrays into the product of the Length and the
2002	Compoent_Size attributes of the slices.
2003	* exp_ch5.adb (Expand_Assign_Array_Bitfield): Use Size attribute
2004	directly to compute the bitfield's size.
2005
20062019-09-17  Bob Duff  <duff@adacore.com>
2007
2008	* exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Add tests
2009	for potential volatile or independent components.
2010	* libgnat/s-bituti.adb (Copy_Small_Bitfield,
2011	Copy_Large_Bitfield): Move declarations to more appropriate
2012	place.
2013
20142019-09-13  Maciej W. Rozycki  <macro@wdc.com>
2015
2016	* make.adb (Scan_Make_Arg): Also accept `--sysroot=' for the
2017	compiler and the linker.
2018
20192019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2020
2021	* gcc-interface/decl.c (maybe_saturate_size): New function.
2022	(gnat_to_gnu_entity): Invoke it on the Esize of types before sending
2023	it for back-annotations.
2024	* gcc-interface/trans.c: Fix typo.
2025
20262019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2027
2028	* gcc-interface/ada-tree.h (DECL_FORCED_BY_REF_P): New macro.
2029	* gcc-interface/decl.c (gnat_to_gnu_param): Set it on parameters
2030	whose mechanism was forced to by-reference.
2031	* gcc-interface/trans.c (Call_to_gnu): Do not issue a warning about a
2032	misaligned actual parameter if it is based on a CONSTRUCTOR.  Remove
2033 	obsolete warning for users of Starlet.  Issue a warning if a temporary
2034	is make around the call for a parameter with DECL_FORCED_BY_REF_P set.
2035	(addressable_p): Return true for REAL_CST and ADDR_EXPR.
2036
20372019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2038
2039	* gcc-interface/trans.c (gnat_to_gnu): Do not set the location on an
2040	expression used for a tag.
2041
20422019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2043
2044	* gcc-interface/gigi.h (aggregate_type_contains_array_p): Declare.
2045	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For an
2046	extension, test Has_Record_Rep_Clause instead of Has_Specified_Layout.
2047	(adjust_packed): Return 0 if the type of the field is an aggregate
2048	type that contains (or is) a self-referential array.
2049	(type_has_variable_size): Delete.
2050	* gcc-interface/utils.c (inish_record_type): Constify a variable.
2051	(aggregate_type_contains_array_p): Add parameter SELF_REFERENTIAL.
2052	<RECORD_TYPE>: Pass it in the recursive call.
2053	<ARRAY_TYPE>: If it is true, return true only if the array type is
2054	self-referential.
2055	(create_field_decl): Streamline the setting of the alignment on the
2056	field.  Pass false to aggregate_type_contains_array_p.
2057
20582019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2059
2060	* gcc-interface/trans.c (lvalue_required_p) <N_Slice>: Adjust GNU_TYPE
2061	in the recursive call.
2062	<N_Selected_Component>: Likewise.
2063
20642019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2065
2066	* gcc-interface/utils.c (build_template): Deal with parameters
2067	passed by pointer to component of multi-dimensional arrays.
2068
20692019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2070
2071	* gcc-interface/decl.c (annotate_value) <CALL_EXPR>: Inline the call
2072	also if List_Representation_Info is greater than 3.
2073
20742019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2075
2076	* gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Add assertion.
2077
20782019-08-30  Eric Botcazou  <ebotcazou@adacore.com>
2079
2080	* gcc-interface/gigi.h (gigi_checking_assert): New macro.
2081	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>:
2082	Remove redundant test and adjust comments.  Minor tweaks.
2083	* gcc-interface/trans.c (Call_to_gnu): Do not generate range checks,
2084	instead assert that the Do_Range_Check flag is not set.  Adjust call
2085	to convert_with_check.
2086	(gnat_to_gnu): Likewise.
2087	(assoc_to_constructor): Likewise.
2088	(pos_to_constructor): Likewise.  Remove GNAT_COMPONENT_TYPE parameter.
2089	(emit_range_check): Delete.
2090	(convert_with_check): Remove RANGE_P parameter and adjust.  Do a single
2091	overflow check for modular types.
2092
20932019-08-23  Jakub Jelinek  <jakub@redhat.com>
2094
2095	PR middle-end/91283
2096	* gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision
2097	instead of flag_excess_precision_cmdline.
2098
20992019-08-21  Vadim Godunko  <godunko@adacore.com>
2100
2101	* libgnat/g-expect.adb (Expect_Internal): Attempt to read
2102	several times when 'read' returns non-positive.
2103
21042019-08-21  Piotr Trojanek  <trojanek@adacore.com>
2105
2106	* einfo.adb (Is_Discriminal): Remove extra parens.
2107	(Is_Constant_Object): Simplify by reusing Ekind_In.
2108	(Is_Prival): Remove extra parens.
2109	* checks.adb, exp_ch4.adb, sem_ch3.adb, sem_spark.adb: Minor
2110	reformattings.
2111
21122019-08-21  Claire Dross  <dross@adacore.com>
2113
2114	* libgnat/a-cofove.ads (Vector): Add an Iterable aspect to allow
2115	iteration.
2116	(Iter_First, Iter_Next): Primitives used for iteration.
2117
21182019-08-21  Yannick Moy  <moy@adacore.com>
2119
2120	* sem_ch3.adb (Analyze_Subtype_Declaration): Inherit RM_Size
2121	field for formal type parameters in generic instantiations.
2122
21232019-08-21  Yannick Moy  <moy@adacore.com>
2124
2125	* sem_spark.adb: Update references to the SPARK RM.
2126
21272019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
2128
2129	* repinfo.adb (List_Array_Info): In -gnatR4 mode, set the
2130	relevant flag on the component type here instead of...
2131	(List_Object_Info): Likewise for the object type.
2132	(List_Entities): ...here.  In -gnatR4 mode, recurse into
2133	entities local to a record type.
2134	(List_Component_Layout): In -gnatR4 mode, mark the type as
2135	relevant.
2136
21372019-08-21  Bob Duff  <duff@adacore.com>
2138
2139	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-bitutil.o and
2140	s-biutin.o.
2141	* exp_ch5.adb (Expand_Assign_Array_Bitfield): New function to
2142	generate a call to Copy_Bitfield. This is disabled for now.
2143	(Expand_Assign_Array_Loop_Or_Bitfield): New function to decide
2144	whether to call Expand_Assign_Array_Bitfield.
2145	(Expand_Assign_Array): Call Expand_Assign_Array_Loop_Or_Bitfield
2146	instead of Expand_Assign_Array_Loop.
2147	* libgnat/s-bitfie.ads, libgnat/s-bituti.adb,
2148	libgnat/s-bituti.ads: New units.
2149	* rtsfind.ads: Add enum literals for accessing Copy_Bitfield.
2150
21512019-08-21  Piotr Trojanek  <trojanek@adacore.com>
2152
2153	* bindo-graphs.ads (Iterate_Edges_To_Successors): Fix typo in
2154	pragma Inline.
2155	* bindo-graphs.adb (Delete_Edge): Fix layout in parameter list.
2156
21572019-08-21  Gary Dismukes  <dismukes@adacore.com>
2158
2159	* exp_ch3.adb (Build_Master): Suppress call to
2160	Build_Class_Wide_Master in the case where the
2161	access-to-limited-class-wide type was created for a component in
2162	an entry's formal parameter
2163	block (Is_Parameter_Block_Component_Type), to prevent a master
2164	from being created for such access types generated by the front
2165	end in a task spec for entry formals in a parameter block.  Add
2166	a ??? about whether this suppression should be done more
2167	generally (such as by using Comes_From_Source).
2168
21692019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
2170
2171	* exp_ch6.adb (Expand_N_Extended_Return_Statement): In the case
2172	of a built-in-place function that doesn't need a BIP_Alloc_Form
2173	parameter but returns unconstrained, build the return
2174	consistently using the function's result subtype.  Remove bypass
2175	added in previous change.
2176
21772019-08-21  Piotr Trojanek  <trojanek@adacore.com>
2178
2179	* sem_prag.adb (Max_Entry_Queue_Length): Do not substitute
2180	expression of the pragma argument with its value during
2181	analysis.
2182	* sem_util.adb (Get_Max_Queue_Length): Compute value of the
2183	pragma argument when needed.
2184
21852019-08-21  Yannick Moy  <moy@adacore.com>
2186
2187	* checks.adb (Install_Null_Excluding_Check): Do not install
2188	check in GNATprove mode.
2189
21902019-08-21  Yannick Moy  <moy@adacore.com>
2191
2192	* sem_spark.adb (Process_Path): Do nothing on address of
2193	subprogram.
2194
21952019-08-21  Eric Botcazou  <ebotcazou@adacore.com>
2196
2197	* exp_util.adb (Finalize_Address): Deal consistently with
2198	subtypes of private protected types.
2199
22002019-08-21  Piotr Trojanek  <trojanek@adacore.com>
2201
2202	* exp_util.adb (Corresponding_Runtime_Package): Use high-level
2203	Is_Protected_Type.
2204	* sem_ch8.adb (Analyze_Renamed_Entry): Likewise.
2205	* sem_ch9.adb (Analyze_Requeue): Likewise.
2206
22072019-08-21  Javier Miranda  <miranda@adacore.com>
2208
2209	* sem_util.adb (Update_Named_Associations): Update
2210	First_Named_Actual when the subprogram call has a single named
2211	actual.
2212
22132019-08-21  Joel Brobecker  <brobecker@adacore.com>
2214
2215	* doc/Makefile (mk_empty_dirs): New (PHONY) rule.
2216	(%.html, %.pdf, %.txt, %.info, %.texinfo): Add dependencies on
2217	mk_empty_dirs.
2218
22192019-08-21  Justin Squirek  <squirek@adacore.com>
2220
2221	* doc/gnat_rm/implementation_defined_pragmas.rst: Modify
2222	documentation to reflect expected behavior.
2223	* gnat_rm.texi: Regenerate.
2224	* sem_prag.adb (Analyze_Pragma): Modify handling of pragma
2225	Max_Entry_Queue_Length to not reject integer values of negative
2226	one.
2227	* sem_util.adb (Get_Max_Queue_Length): Add processing for values
2228	of negative one to fit within the current scheme.
2229
22302019-08-20  Arnaud Charlet  <charlet@adacore.com>
2231
2232	* exp_unst.adb (Unnest_Subprograms, Unnest_Subprogram): Take
2233	inlining (-gnatn) into account.
2234
22352019-08-20  Ed Schonberg  <schonberg@adacore.com>
2236
2237	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case
2238	Storage_Size): If the expression for Storage_Size is not static
2239	it may depend on characterstics of another type that may bot be
2240	frozen yet, so the elaboration of the expression for the aspect
2241	must be attached directly to the freeze actions of the type to
2242	which it applies.
2243
22442019-08-20  Piotr Trojanek  <trojanek@adacore.com>
2245
2246	* exp_util.adb (Build_DIC_Procedure_Declaration): Set the last
2247	entity of the generated Default_Initial_Condition procedure in
2248	order to construct a proper entity chain.
2249
22502019-08-20  Yannick Moy  <moy@adacore.com>
2251
2252	* exp_spark.adb (Expand_SPARK_N_Slice_Or_Indexed_Component):
2253	Renaming of function to apply to slices as well.
2254	(Expand_SPARK): Expand prefix of slices of access type.
2255
22562019-08-20  Bob Duff  <duff@adacore.com>
2257
2258	* exp_aggr.adb (Expand_Array_Aggregate): Use build-in-place in
2259	the nonlimited case in STEP 4. This improves the efficiency of
2260	things like (1 .. 1000 => <>).  We still generate some code for
2261	that, unfortunately, but it is much improved.
2262	(Aggr_Assignment_OK_For_Backend): Return false if <> components
2263	are present.
2264
22652019-08-20  Bob Duff  <duff@adacore.com>
2266
2267	* exp_ch6.adb (Needs_BIP_Alloc_Form): Call
2268	Requires_Transient_Scope rather than checking constrainedness
2269	and so forth.  We have previously improved
2270	Requires_Transient_Scope to return False in various cases,
2271	notably a limited record with an access discriminant. This
2272	change takes advantage of that to avoid using the secondary
2273	stack for functions returning such types.
2274	(Make_Build_In_Place_Call_In_Allocator): Be consistent by
2275	calling Needs_BIP_Alloc_Form rather than Is_Constrained and so
2276	forth.
2277	* sem_ch4.adb (Analyze_Allocator): The above change causes the
2278	compiler to generate code that is not legal Ada, in particular
2279	an uninitialized allocator for indefinite subtype.  This is
2280	harmless, so we suppress the error message in this case.
2281
22822019-08-20  Gary Dismukes  <dismukes@adacore.com>
2283
2284	* ali.adb, ali.ads, aspects.adb, checks.ads, checks.adb,
2285	doc/gnat_rm/implementation_defined_pragmas.rst,
2286	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
2287	einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.ads, exp_ch4.adb,
2288	exp_disp.adb, inline.adb, libgnat/a-locale.ads,
2289	libgnat/s-soflin.ads, par_sco.adb, repinfo.adb, sem_ch5.adb,
2290	sem_disp.adb, sem_elab.adb, sem_eval.adb, sem_spark.adb,
2291	sem_spark.ads, sinfo.ads: Minor reformattings, typo fixes and
2292	and rewordings.
2293
22942019-08-20  Dmitriy Anisimkov  <anisimko@adacore.com>
2295
2296	* adaint.c (__gnat_to_gm_time): On _WIN32, don't round time up
2297	to even second.
2298
22992019-08-20  Ed Schonberg  <schonberg@adacore.com>
2300
2301	* sem_ch3.adb (Analyze_Object_Declaration): If actual type is
2302	private and distinct from nominal type in declaration, propagate
2303	flags Is_Constr_Subt_For_U_Nominal and _UN_Aliased to full view
2304	of private type.
2305
23062019-08-20  Ed Schonberg  <schonberg@adacore.com>
2307
2308	* exp_attr.adb (Expand_Loop_Entry_Attribute): When expanding a
2309	loop entry attribute for a while_loop we construct a function
2310	that incorporates the expanded condition of the loop. The itypes
2311	that may be generated in that expansion must carry the scope of
2312	the constructed function for proper handling in gigi.
2313
23142019-08-20  Ed Schonberg  <schonberg@adacore.com>
2315
2316	* exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When a
2317	dispatching call tp a subprogram with a class-wide precondition
2318	occurrs in the same declarative part as the ancestor subprogram
2319	being called, the`expression for the precondition has not been
2320	analyzed yet. Such a call may appear, e.g. in an expression
2321	function. In that case, the replacement of formals by actuals in
2322	the call cannot use the formal entities of the subprogram being
2323	called, and the occurrence of the formals in the expression must
2324	be located by name (Chars fields) as would be done at a later
2325	freeze point, when the expression is resolved in the context of
2326	the subprogram itself.
2327
23282019-08-20  Bob Duff  <duff@adacore.com>
2329
2330	* sem_prag.adb (Persistent_BSS): If an initialization is present
2331	because of Initialize_Scalars or Normalize_Scalars, generate an
2332	implicit pragma Suppress_Initialization to remove that, because
2333	initialization is not allowed for these variables. Other
2334	initializations remain illegal.
2335
23362019-08-20  Gary Dismukes  <dismukes@adacore.com>
2337
2338	* sem_ch3.adb (OK_For_Limited_Init_In_05): In the case of type
2339	conversions, apply the recursive call to the Original_Node of
2340	the expression Exp rather than the Expression of the
2341	Original_Node, in the case where Exp has been rewritten;
2342	otherwise, when Original_Node is the same as Exp, apply the
2343	recursive call to the Expression.
2344	(Check_Initialization): Revise condition for special check on
2345	type conversions of limited function calls to test Original_Node
2346	(avoiding spurious errors on expanded unchecked conversions
2347	applied to build-in-place dispatching calls).
2348
23492019-08-20  Patrick Bernardi  <bernardi@adacore.com>
2350
2351	* exp_aggr.adb (Expand_Record_Aggregate): Always convert a
2352	record Aggregate to assignment statements if the option
2353	Aggregate_Individually_Assign is set.
2354	* opt.ads (Aggregate_Individually_Assign): New option.
2355	* par-prag.adb (Prag): Add Pragma_Aggregate_Individually_Assign.
2356	* sem_prag.adb (Analyze_Pragma): Likewise.
2357	* snames.ads-tmpl: Add Pragma_Aggregate_Individually_Assign and
2358	Name_Aggregate_Individually_Assign.
2359	* doc/gnat_rm/implementation_defined_pragmas.rst: Document
2360	pragma Aggregate_Individually_Assign.
2361	* gnat_rm.texi: Regenerate.
2362
23632019-08-20  Bob Duff  <duff@adacore.com>
2364
2365	* par-ch4.adb: Minor wording change in error messages.
2366	* sem_aggr.adb (Resolve_Delta_Aggregate): Emit an error for Ada
2367	versions prior to Ada 2020.
2368
23692019-08-20  Bob Duff  <duff@adacore.com>
2370
2371	* freeze.adb (Is_Atomic_VFA_Aggregate): Make the temp for
2372	initialization of the atomic variable be constant. This is
2373	cleaner, and might improve efficiency.
2374
23752019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
2376
2377	* repinfo.adb (List_Record_Info): In -gnatR4 mode, set the
2378	relevant flag on the implicit base type of a record subtype.
2379
23802019-08-20  Bob Duff  <duff@adacore.com>
2381
2382	* sem_eval.adb (Expr_Value): Implement the case of an unchecked
2383	conversion of a static expression.
2384
23852019-08-20  Bob Duff  <duff@adacore.com>
2386
2387	* sem_ch13.adb (Is_Null_Array): New function, used to detect the
2388	null array case; used to warn about uncheckedly converting to a
2389	zero-sized array.  It is unfortunate that we can't just check
2390	the size, and warn on all cases of converting from a
2391	nonzero-sized type to a zero-sized one. That's because "0" means
2392	two different things: "size is zero" and "size is unknown".
2393	Until we fix that design flaw, we need this more targeted fix.
2394
23952019-08-20  Bob Duff  <duff@adacore.com>
2396
2397	* libgnat/a-cborma.adb, libgnat/a-cborse.adb (Clear): Repeatedly
2398	call Delete. This avoids clearing the free list, which
2399	substantially speeds up future Delete operations.
2400
24012019-08-20  Bob Duff  <duff@adacore.com>
2402
2403	* sem_ch13.adb (Component_Order_Check): New procedure to check
2404	for out-of-order clauses.
2405	* warnsw.ads, warnsw.adb: New -gnatw_r switch.
2406	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2407	Document new switch.
2408	* gnat_ugn.texi: Regenerate.
2409
24102019-08-20  Bob Duff  <duff@adacore.com>
2411
2412	* sem_ch13.adb (Object_Size): Give an error for zero. It really
2413	rubs me the wrong way that we don't honor "for T'Object_Size use
2414	0;", but it's not important enough to fix. In any case, if we're
2415	not going to obey the clause, we should give an error.
2416
24172019-08-20  Bob Duff  <duff@adacore.com>
2418
2419	* errout.adb (Error_Msg_Internal): Set Warn_Err in case of
2420	Is_Style_Msg.
2421	* erroutc.adb (Output_Msg_Text): Do Warnings_Treated_As_Errors
2422	processing and [warning-as-error] modification for style
2423	messages.  Clean up code, simplify, remove unnecessary block
2424	statement, add renaming of table entry.
2425	* erroutc.ads (Warning_Treated_As_Error): Fix comment: no such
2426	thing as Set_Warning_As_Error.
2427	* opt.ads: Clean up comments and move related declarations near
2428	each other.
2429	* par-prag.adb: Process Warning_As_Error. This is necessary
2430	because many style warning happen during parsing.
2431	* sem_prag.adb: Use new Acquire_Warning_Match_String.
2432	* sem_util.ads, sem_util.adb (Acquire_Warning_Match_String): New
2433	function shared by par-prag.adb and sem_prag.adb. Replaces the
2434	procedure in sem_prag.adb. Avoid use of global variables.
2435	* stringt.ads, stringt.adb (To_String): New function to convert
2436	String_Id to String.
2437	* doc/gnat_rm/implementation_defined_pragmas.rst: Document the
2438	new feature.
2439	* gnat_rm.texi: Regenerate.
2440
24412019-08-20  Eric Botcazou  <ebotcazou@adacore.com>
2442
2443	* lib.ads: Add with clause for GNAT.HTable.
2444	Add pragma Inline for Is_Loaded and alphabetize the list.
2445	(Unit_Name_Table_Size): New constant.
2446	(Unit_Name_Header_Num): New subtype.
2447	(Unit_Name_Hash): New function declaration.
2448	(Unit_Names): New simple hash table.
2449	(Init_Unit_Name): New procedure declaration.
2450	* lib.adb (Set_Unit_Name): Unregister the old name in the table,
2451	if any, and then register the new name.
2452	(Init_Unit_Name): New procedure.
2453	(Is_Loaded): Reimplement using a lookup in the names table.
2454	(Remove_Unit): Unregister the name.
2455	(Unit_Name_Hash): New function.
2456	* lib-load.adb (Create_Dummy_Package_Unit): Call Init_Unit_Name.
2457	(Load_Unit): Use a lookup in the names table to find out whether
2458	the unit has already been loaded.  Call Init_Unit_Name and then
2459	Remove_Unit if the loading has failed.
2460	(Make_Child_Decl_Unit): Call Init_Unit_Name.
2461	(Make_Instance_Unit): Likewise.
2462	* lib-writ.adb (Ensure_System_Dependency): Likewise.
2463
24642019-08-20  Bob Duff  <duff@adacore.com>
2465
2466	* sem_ch13.adb (Record_Hole_Check): Initialize After_Last.
2467
24682019-08-20  Piotr Trojanek  <trojanek@adacore.com>
2469
2470	* impunit.adb (Get_Kind_Of_Unit): Revert change for adapting
2471	this routine for gnatprove.
2472
24732019-08-20  Arnaud Charlet  <charlet@adacore.com>
2474
2475	* doc/gnat_rm/implementation_defined_pragmas.rst: Document
2476	requirements for Pragma Lock_Free.
2477	* gnat_rm.texi: Regenerate.
2478
24792019-08-20  Philippe Gil  <gil@adacore.com>
2480
2481	* bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv
2482	only when still uninitialized.
2483
24842019-08-20  Bob Duff  <duff@adacore.com>
2485
2486	* libgnat/g-comlin.ads (Exit_From_Command_Line): Fix
2487	documentation for GNAT.Command_Line.
2488
24892019-08-20  Pierre-Marie de Rodat  <derodat@adacore.com>
2490
2491	PR ada/91492
2492	* gcc-interface/lang.opt (-fdump-scos): Add missing dot at the
2493	end of the documentation.
2494
24952019-08-20  Richard Sandiford  <richard.sandiford@arm.com>
2496
2497	* gcc-interface/misc.c (default_pass_by_ref): Update call to
2498	pass_by_reference.
2499
25002019-08-19  Bob Duff  <duff@adacore.com>
2501
2502	* doc/gnat_rm/implementation_advice.rst: Fix documentation for
2503	stream oriented attributes.
2504	* gnat_rm.texi: Regenerate.
2505
25062019-08-19  Gary Dismukes  <dismukes@adacore.com>
2507
2508	* einfo.ads (E_Function, E_Procedure): Update comments to
2509	reflect that Renamed_Entity is also used for nongeneric
2510	subprograms.
2511
25122019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2513
2514	* sem_prag.adb (Is_Before_First_Decl): Deal with rewritten
2515	pragmas.
2516
25172019-08-19  Bob Duff  <duff@adacore.com>
2518
2519	* sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning
2520	on formal parameters of dispatching operations.
2521
25222019-08-19  Ed Schonberg  <schonberg@adacore.com>
2523
2524	* sem_res.adb (Resolve_Call): A call to an expression function
2525	freezes when expander is active, unless the call appears within
2526	the body of another expression function,
2527
25282019-08-19  Dmitriy Anisimkov  <anisimko@adacore.com>
2529
2530	* libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New
2531	routines.
2532
25332019-08-19  Bob Duff  <duff@adacore.com>
2534
2535	* exp_attr.adb (Attribute_Valid): Correct the handling of
2536	private types where the full type is modular. System.Address is
2537	an example. Otherwise, we convert uncheckedly to a signed type,
2538	so we get an incorrect range 0 .. -1, for which all values will
2539	fail.  The 'Valid attribute is illegal for such types, but we
2540	generate such illegal attribute_references for 'Valid_Scalars,
2541	and we generate 'Valid_Scalars when the -gnateV switch is used.
2542	Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was
2543	confusing.
2544	* libgnat/a-except.adb: Set the Exception_Raised component.
2545	Otherwise, we have incorrect reads of invalid data.
2546
25472019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
2548
2549	* libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads,
2550	libgnat/a-cogeso.ads, libgnat/a-contai.ads,
2551	libgnat/a-locale.ads: Import documentation from the RM.
2552
25532019-08-19  Jerome Guitton  <guitton@adacore.com>
2554
2555	* Makefile.rtl (system.o): New target to add generation of
2556	target properties.
2557	* gcc-interface/Makefile.in (install-gnatlib): Install
2558	ada_target_properties.
2559
25602019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2561
2562	* inline.adb (Add_Inlined_Body): Do not special-case instances
2563	that are compilation units.
2564	(Add_Pending_Instantiation): Likewise.
2565	(Instantiate_Body): Skip instantiations that are compilation
2566	units and have already been performed.
2567	* sem_ch12.adb (Needs_Body_Instantiated): Do not special-case
2568	instances that are compilation units.
2569	(Load_Parent_Of_Generic): Be prepared for parent that is a
2570	compilation unit but whose instantiation node has not been
2571	replaced.
2572
25732019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2574
2575	* inline.adb (Initialize, Lock): Deal with
2576	Called_Pending_Instantiations.
2577
25782019-08-19  Ed Schonberg  <schonberg@adacore.com>
2579
2580	* sem_ch6.adb (Check_Synchronized_Overriding): Complete
2581	predicate that applies legality check in 9.4 (11.9/2): if an
2582	inherited subprogram is implemented by a protected procedure or
2583	entry, its first paarameter must be out, in_out or
2584	access_to_varible.
2585
25862019-08-19  Javier Miranda  <miranda@adacore.com>
2587
2588	PR ada/65696
2589	* exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims):
2590	Adding formal to specify how many predefined primitives are
2591	inherited from the parent type.
2592	* exp_disp.adb (Number_Of_Predefined_Prims): New subprogram.
2593	(Make_Secondary_DT): Compute the number of predefined primitives
2594	of all tagged types (including tagged types not defined at
2595	library level).  Previously we unconditionally relied on the
2596	Max_Predef_Prims constant value when building the dispatch
2597	tables of tagged types not defined at library level (thus
2598	consuming more memory for their dispatch tables than required).
2599	(Make_DT): Compute the number of predefined primitives that must
2600	be inherited from their parent type when building the dispatch
2601	tables of tagged types not defined at library level. Previously
2602	we unconditionally relied on the Max_Predef_Prims constant value
2603	when building the dispatch tables of tagged types not defined at
2604	library level (thus copying more data than required from the
2605	parent type).
2606
26072019-08-19  Bob Duff  <duff@adacore.com>
2608
2609	* sem_ch13.adb (Record_Hole_Check): Procedure to check for holes
2610	that incudes processing type extensions. A type extension is
2611	processed by first calling Record_Hole_Check recursively on the
2612	parent type to compute the bit number after the last component
2613	of the parent.
2614
26152019-08-19  Gary Dismukes  <dismukes@adacore.com>
2616
2617	* checks.adb (Length_Mismatch_Info_Message): New function in
2618	Selected_Length_Checks to return a message indicating the
2619	element counts for the mismatched lengths for a failed
2620	compile-time length check.
2621	(Plural_Or_Singular_Ending): Support function in
2622	Length_Mismatch_Info_Message to return either "" or "s", for
2623	concatenating to the end of words.
2624	(Selected_Length_Checks): Pass the result of
2625	Length_Mismatch_Info_Message as an extra warning message to
2626	Compile_Time_Constraint_Error to indicate the mismatched lengths
2627	for a failed compile-time length check.
2628	* sem_util.ads (Compile_Time_Constraint_Error): Add an optional
2629	message formal (Extra_Msg), defaulted to the empty string.
2630	* sem_util.adb (Compile_Time_Constraint_Error): Output an extra
2631	message following the main warning message (when Extra_Msg is
2632	not the empty string).
2633
26342019-08-19  Patrick Bernardi  <bernardi@adacore.com>
2635
2636	* socket.c: Removed the redefinition of getaddrinfo, getnameinfo
2637	and freeaddrinfo to internal VxWorks kernel calls because they
2638	are, well, internal kernel calls and cannot be called from RTPs.
2639	VxWorks provides the necessary components to call these routines
2640	directly.
2641
26422019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2643
2644	* exp_dist.adb (Is_Generic_Actual_Subtype): New predicate.
2645	(Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call):
2646	Use it instead of Is_Generic_Actual_Type flag to detect subtypes
2647	representing generic actual types.
2648
26492019-08-19  Ed Schonberg  <schonberg@adacore.com>
2650
2651	* sem_warn.adb (Check_References, Generic_Body_Formal): When a
2652	formal parameter of a generic subprogram is not referenced in
2653	the body, place the corresponding warning on the corresponding
2654	entity in the specification of the generic body, as is done for
2655	non-generic subprograms.
2656
26572019-08-19  Bob Duff  <duff@adacore.com>
2658
2659	* errout.ads (Size_Too_Small_Message): New constant.
2660	* errout.adb, freeze.adb, sem_ch13.adb: Use it.
2661
26622019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2663
2664	* exp_dist.adb (Build_Package_Stubs): Do not specifically visit
2665	the declarations of an N_Subprogram_Instantiation node.
2666
26672019-08-19  Bob Duff  <duff@adacore.com>
2668
2669	* doc/gnat_ugn/gnat_utility_programs.rst: Document missing
2670	metrics switches.
2671
26722019-08-19  Piotr Trojanek  <trojanek@adacore.com>
2673
2674	* sem_ch12.adb (Get_Unit_Instantiation_Node): Simplify Nkind_In
2675	membership test.
2676	* sem.adb (Depends_On_Main): Whitespace cleanup; only assign a
2677	local variable if needed.
2678
26792019-08-19  Claire Dross  <dross@adacore.com>
2680
2681	* sem_spark.ads, sem_spark.adb (Is_Pledge_Function): New
2682	parameter of the generic. Function used to decide whether a
2683	function is a pledge function.
2684	(Check_Not_Borrowed): Disable check inside the second parameter
2685	of a pledge function for the path borrowed by the first
2686	parameter. Also disable checks for entities inside a Global
2687	contract.
2688
26892019-08-19  Joffrey Huguet  <huguet@adacore.com>
2690
2691	* libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads,
2692	libgnat/a-cfinve.ads, libgnat/a-cforma.ads,
2693	libgnat/a-cofove.ads, libgnat/a-cofuma.ads,
2694	libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R :
2695	Element_Type) to the generic packages.
2696
26972019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2698
2699	* opt.ads: Clean up left-overs of earlier implementation in
2700	comment:
2701
27022019-08-19  Ed Schonberg  <schonberg@adacore.com>
2703
2704	* sem_ch3.adb (Derived_Enumeration_Type): Do no freeze anonymous
2705	base type if the bounds in the derived type declaration are
2706	literals of the type.
2707
27082019-08-19  Yannick Moy  <moy@adacore.com>
2709
2710	* sem_res.adb (Resolve_Call): Check non-aliasing rules before
2711	GNATprove inlining.
2712
27132019-08-19  Eric Botcazou  <ebotcazou@adacore.com>
2714
2715	* inline.adb (Add_Inlined_Body): Do not add pending
2716	instantiations.
2717	* sem_ch12.adb (Needs_Body_Instantiated): New predicate.
2718	(Analyze_Package_Instantiation): Use it to decide whether to add
2719	a pending instantiation for the body of the package.
2720
27212019-08-19  Olivier Hainque  <hainque@adacore.com>
2722
2723	* gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc
2724	BIND_EXPR node we have constructed on purpose.  Remove unused
2725	variable.
2726
27272019-08-19  Pierre-Marie de Rodat  <derodat@adacore.com>
2728
2729	* gcc-interface/lang.opt (fdump-scos): Define.
2730	* gcc-interface/misc.c (gnat_handle_option): Handle
2731	OPT_fdump_scos.
2732
27332019-08-14  Joffrey Huguet  <huguet@adacore.com>
2734
2735	* libgnat/a-cofuba.ads: Add a Length attribute to type
2736	Container. Add a type Array_Base which replaces the previous
2737	Elements attribute of Container.
2738	(Content_Init): New subprogram. It is used to initialize the
2739	Base attribute of Container.
2740	* libgnat/a-cofuba.adb (Resize): New subprogram. It is used to
2741	resize the underlying array of a container if necessary.
2742	(=, <=, Find, Get, Intersection, Length, Num_Overlaps, Set,
2743	Union): Update to match changes in type declarations.
2744	(Add): Modify body to damp the time and space cost in a specific
2745	case.
2746	(Content_Init): New subprogram. It is used to initialize the
2747	Base attribute of Container.
2748	(Remove): Modify body to damp the time and space cost in a
2749	specific case.
2750
27512019-08-14  Bob Duff  <duff@adacore.com>
2752
2753	* sem_ch13.adb (Get_Alignment_Value): Return 1 for Alignment 0,
2754	and do not give an error.
2755	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Update the
2756	corresponding documentation.
2757	* gnat_rm.texi: Regenerate.
2758
27592019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2760
2761	* inline.adb (Add_Pending_Instantiation): Fix off-by-one error
2762	in the comparison against the maximum number of instantiations.
2763
27642019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2765
2766	* inline.adb (Add_Pending_Instantiation): Use greater-or-equal
2767	in the comparison against the maximum number of instantiations.
2768
27692019-08-14  Ed Schonberg  <schonberg@adacore.com>
2770
2771	* sem_aux.adb (Next_Rep_Item): If a node in the rep chain
2772	involves a Ghost aspect it may have been replaced by a null
2773	statement; use the original node to find next Rep_Item.
2774	* repinfo.adb (List_Entities): Do not list an Ignored
2775	Ghost_Entity, for which information may have been deleted.
2776
27772019-08-14  Bob Duff  <duff@adacore.com>
2778
2779	* sem_prag.ads, sem_prag.adb
2780	(Process_Compile_Time_Warning_Or_Error): In parameterless
2781	version, improve detection of whether we are in a generic unit
2782	to cover the case of an instance within a generic unit.
2783	(Process_Compile_Time_Warning_Or_Error): Rename the
2784	two-parameter version to be
2785	Validate_Compile_Time_Warning_Or_Error, and do not export it.
2786	Issue a warning if the condition is not known at compile time.
2787	The key point is that the warning must be given only for pragmas
2788	deferred to the back end, because the back end discovers
2789	additional values that are known at compile time.  Previous
2790	changes in this ticket have enabled this by deferring to the
2791	back end without checking for special cases such as 'Size.
2792	(Validate_Compile_Time_Warning_Or_Error): Rename to be
2793	Defer_Compile_Time_Warning_Error_To_BE.
2794	* warnsw.ads, warnsw.adb (Warn_On_Unknown_Compile_Time_Warning):
2795	Add new switches -gnatw_c and -gnatw_C to control the above
2796	warning.
2797	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
2798	Document new switches.
2799	* gnat_ugn.texi: Regenerate.
2800
28012019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2802
2803	* sem_ch12.adb (Might_Inline_Subp): Rework comment and restrict
2804	the shortcut based on Is_Inlined to the back-end inlining case.
2805
28062019-08-14  Bob Duff  <duff@adacore.com>
2807
2808	* inline.adb (Check_And_Split_Unconstrained_Function): Ignore
2809	protected functions to get rid of spurious error. The
2810	transformation done by this procedure triggers legality errors
2811	in the generated code in this case.
2812
28132019-08-14  Bob Duff  <duff@adacore.com>
2814
2815	* sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Defer
2816	processing to the back end in all cases where the pragma's
2817	condition is not known at compile time during the front end
2818	(except in generics), as opposed to detecting 'Size attributes
2819	and the like. This ensures that we take advantage of whatever
2820	can be compile-time known after running the back end, as opposed
2821	to having the front end guess what the back end can do.  Remove
2822	a little duplicated code at the call site.
2823	* gnat1drv.adb (Post_Compilation_Validation_Checks): Unlock the
2824	Elists while in Validate_Compile_Time_Warning_Errors, because it
2825	does analysis and name resolution, which sometimes involves
2826	adding Elists.
2827
28282019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2829
2830	* einfo.ads (Is_Called): Document new usage on E_Package
2831	entities.
2832	* einfo.adb (Is_Called): Accept E_Package entities.
2833	(Set_Is_Called): Likewise.
2834	* exp_ch6.adb (Expand_Call_Helper): Move code dealing with
2835	instances for back-end inlining to Add_Inlined_Body.
2836	* inline.ads: Remove with clauses for Alloc and Table.
2837	(Pending_Instantiations): Move to...
2838	* inline.adb: Add with clauses for Alloc, Uintp, Table and
2839	GNAT.HTable.
2840	(Backend_Instances): New variable.
2841	(Pending_Instantiations): ...here.
2842	(Called_Pending_Instantiations): New table.
2843	(Node_Table_Size): New constant.
2844	(Node_Header_Num): New subtype.
2845	(Node_Hash): New function.
2846	(To_Pending_Instantiations): New hash table.
2847	(Add_Inlined_Body): Bail out early for subprograms in the main
2848	unit or subunit.  Likewise if the Is_Called flag is set.  If the
2849	subprogram is an instance, invoke Add_Inlined_Instance.  Call
2850	Set_Is_Called earlier.  If the subrogram is within an instance,
2851	invoke Add_Inlined_Instance.  Also deal with the case where the
2852	call itself is within an instance.
2853	(Add_Inlined_Instance): New procedure.
2854	(Add_Inlined_Subprogram): Remove conditions always fulfilled.
2855	(Add_Pending_Instantiation): Move the defence against ludicruous
2856	number of instantiations to here. When back-end inlining is
2857	enabled, associate an instantiation with its index in table and
2858	mark a few selected kinds of instantiations as always needed.
2859	(Initialize): Set Backend_Instances to No_Elist.
2860	(Instantiate_Body): New procedure doing the work extracted
2861	from...
2862	(Instantiate_Bodies): ...here.  When back-end inlining is
2863	enabled, loop over Called_Pending_Instantiations instead of
2864	Pending_Instantiations.
2865	(Is_Nested): Minor tweak.
2866	(List_Inlining_Info): Also list the contents of
2867	Backend_Instances.
2868	* sem_ch12.adb (Might_Inline_Subp): Return early if Is_Inlined
2869	is set and otherwise set it before returning true.
2870	(Analyze_Package_Instantiation): Remove the defence against
2871	ludicruous number of instantiations.  Invoke
2872	Remove_Dead_Instance instead of doing the removal manually if
2873	there is a guaranteed ABE.
2874
28752019-08-14  Gary Dismukes  <dismukes@adacore.com>
2876
2877	* exp_ch3.adb (Predef_Spec_Or_Body): For an equality operation
2878	of an interface type, create an expression function (that
2879	returns False) rather than declaring an abstract function.
2880	* freeze.adb (Check_Inherited_Conditions): Set Needs_Wrapper to
2881	False unconditionally at the start of the loop creating wrappers
2882	for inherited operations.
2883
28842019-08-14  Bob Duff  <duff@adacore.com>
2885
2886	* table.adb: Assert that the table is not locked when increasing
2887	Last, even if it doesn't cause reallocation.  In other words,
2888	assert that on operations that MIGHT cause reallocation.
2889	* table.ads: Fix comment accordingly.
2890
28912019-08-14  Arnaud Charlet  <charlet@adacore.com>
2892
2893	* doc/gnat_ugn/gnat_and_program_execution.rst: Remove
2894	documentation of gnatelim.
2895
28962019-08-14  Bob Duff  <duff@adacore.com>
2897
2898	* sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the
2899	warning to the Sloc of the first pragma argument, rather than to
2900	the pragma itself. This is to make pragmas processed after the
2901	back end use the same Sloc as pragmas processed earlier, in the
2902	front end. There's no reason for this discrepancy, and it
2903	hinders further work on this ticket.
2904
29052019-08-14  Bob Duff  <duff@adacore.com>
2906
2907	* sem.ads (Inside_A_Generic): Remove the ??? comment.
2908
29092019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2910
2911	* inline.ads (Pending_Descriptor): Delete.
2912	* inline.adb (Initialize): Do not initialize it.
2913	* sem_ch12.adb (Delay_Descriptors): Delete.
2914	(Analyze_Package_Instantiation): Call
2915	Set_Delay_Subprogram_Descriptors instead of Delay_Descriptors
2916	throughout.
2917
29182019-08-14  Bob Duff  <duff@adacore.com>
2919
2920	* exp_aggr.adb (Init_Hidden_Discriminants): Avoid processing the
2921	wrong discriminant, which could be of the wrong type.
2922
29232019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2924
2925	* sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset
2926	the Is_Generic_Instance flag previously set on the package
2927	generated for the instantiation of a generic subprogram.
2928
29292019-08-14  Ed Schonberg  <schonberg@adacore.com>
2930
2931	* exp_ch4.adb (Expand_N_Quantified_Expression): Freeze
2932	explicitly the type of the loop parameter.
2933
29342019-08-14  Javier Miranda  <miranda@adacore.com>
2935
2936	* sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement):
2937	Update the Chars attribute of identifiers.
2938
29392019-08-14  Yannick Moy  <moy@adacore.com>
2940
2941	* sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed
2942	for use in GNATprove, to test legality rules not related to
2943	permissions.
2944	(Check_Declaration_Legality): Extract the part of
2945	Check_Declaration that checks rules not related to permissions.
2946	(Check_Declaration): Call the new Check_Declaration_Legality.
2947	(Check_Type_Legality): Rename of Check_Type. Introduce
2948	parameters to force or not checking, and update a flag detecting
2949	illegalities.
2950	(Check_Node): Ignore attribute references in statement position.
2951
29522019-08-14  Yannick Moy  <moy@adacore.com>
2953
2954	* sem_spark.adb (Check_Old_Loop_Entry): New procedure to check
2955	correct use of Old  and Loop_Entry.
2956	(Check_Node): Check subprogram contracts.
2957	(Check_Pragma): Check Loop_Variant.
2958	(Check_Safe_Pointers): Apply checking to library-level
2959	subprogram  declarations as well, in order to check their
2960	contract.
2961
29622019-08-14  Yannick Moy  <moy@adacore.com>
2963
2964	* sem_spark.adb (Is_Subpath_Expression): Take into account
2965	conversion and qualification.
2966
29672019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
2968
2969	* sem_ch7.adb (Install_Private_Declarations)
2970	<Swap_Private_Dependents>: Do not rely solely on the
2971	Is_Child_Unit flag on the unit to recurse.
2972	(Uninstall_Declarations) <Swap_Private_Dependents>: New
2973	function.  Use it to recurse on the private dependent entities
2974	for child units.
2975
29762019-08-14  Javier Miranda  <miranda@adacore.com>
2977
2978	* exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for
2979	arrays with bounds not known at compile time.
2980
29812019-08-14  Ed Schonberg  <schonberg@adacore.com>
2982
2983	* sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified
2984	expression includes the implicit declaration of the loop
2985	parameter. When a quantified expression is copied during
2986	expansion, for example when building the precondition code from
2987	the generated pragma, a new loop parameter must be created for
2988	the new tree, to prevent duplicate declarations for the same
2989	symbol.
2990
29912019-08-14  Yannick Moy  <moy@adacore.com>
2992
2993	* sem_disp.adb (Check_Dispatching_Operation): Update assertion
2994	for the separate declarations created in GNATprove mode.
2995	* sem_disp.ads (Is_Overriding_Subprogram): Update comment.
2996	* sem_elab.adb (SPARK_Processor): Fix test for checking of
2997	overriding primitives.
2998
29992019-08-14  Eric Botcazou  <ebotcazou@adacore.com>
3000
3001	* inline.adb (Add_Inlined_Body): Tweak comments.
3002	(List_Inlining_Info): Also list information about non-main
3003	units.
3004
30052019-08-14  Gary Dismukes  <dismukes@adacore.com>
3006
3007	* sem_ch4.adb (Analyze_Selected_Component): In the case where
3008	the prefix is of a concurrent type, and the selected entity
3009	matching the selector is the first private declaration of the
3010	type (such as the first local variable in a task's body), set
3011	Is_Private_Op.
3012
30132019-08-14  Piotr Trojanek  <trojanek@adacore.com>
3014
3015	* einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated
3016	calls to Ekind with Ekind_In.
3017
30182019-08-13  Richard Sandiford  <richard.sandiford@arm.com>
3019
3020	PR middle-end/91421
3021	* gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function.
3022	(Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
3023
30242019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3025
3026	* ali.ads (Linker_Option_Record): Remove Original_Pos component.
3027	* ali.adb (Scan_ALI): Do not set it.
3028
30292019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3030
3031	* sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of
3032	local variables and use them.  When the derived type fully
3033	constrains the parent type, rewrite it as a subtype of an
3034	implicit (unconstrained) derived type instead of the other way
3035	around.
3036	(Copy_And_Build): Deal with concurrent types and use predicates.
3037	(Build_Derived_Private_Type): Build the full derivation if
3038	needed for concurrent types too.
3039	(Build_Derived_Record_Type): Add marker comment.
3040	(Complete_Private_Subtype): Use predicates.
3041
30422019-08-13  Ed Schonberg  <schonberg@adacore.com>
3043
3044	* sem_ch3.adb (Check_Generic_Ancestor): New subprogram,
3045	aubsidiary to Build_Derived_Record_Type. to enforce the rule
3046	that a type extension declared in a generic body cznnot have an
3047	ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule
3048	applies to all ancestors of the type, including interface
3049	progenitors.
3050
30512019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3052
3053	* sem_ch3.adb (Build_Underlying_Full_View): Delete.
3054	(Complete_Private_Subtype): Do not set the full view on the
3055	private subtype here.  If the full base is itself derived from
3056	private, do not re-derive the parent type but instead constrain
3057	an existing underlying full view.
3058	(Prepare_Private_Subtype_Completion): Do not get to the
3059	underlying full view, if any.  Set the full view on the private
3060	subtype here.
3061	(Process_Full_View): Likewise.
3062	* sem_ch12.adb (Check_Generic_Actuals): Also set
3063	Is_Generic_Actual_Type on the full view if the type of the
3064	actual is private.
3065	(Restore_Private_Views): Also reset Is_Generic_Actual_Type on
3066	the full view if the type of the actual is private.
3067	* sem_eval.adb (Subtypes_Statically_Match): Remove bypass for
3068	generic actual types.
3069
30702019-08-13  Javier Miranda  <miranda@adacore.com>
3071
3072	* sem_res.adb (Resolve_Selected_Component): When the type of the
3073	component is an access to a class-wide type and the type of the
3074	context is an access to a tagged type the relevant type is that
3075	of the component (since in such case we may need to generate
3076	implicit type conversions or dispatching calls).
3077
30782019-08-13  Ed Schonberg  <schonberg@adacore.com>
3079
3080	* exp_aggr.adb (Aggr_Assignment_OK_For_Backend):  Preanalyze
3081	expression, rather do a full analysis, to prevent unwanted
3082	removal of side effects which mask the intent of the expression.
3083
30842019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3085
3086	* impunit.adb (Non_Imp_File_Names_95): Add
3087	GNAT.Branch_Prediction.
3088
30892019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3090
3091	* exp_ch6.adb: Remove with and use clauses for Sem_Ch12.
3092	(Expand_Call_Helper): Swap the back-end inlining case and the
3093	special front-end expansion case.  In back-end inlining mode, do
3094	not invoke Add_Inlined_Body unless the call may be inlined.
3095	* inline.ads (Add_Pending_Instantiation): New function moved
3096	from...
3097	* inline.adb (Add_Inlined_Body): Simplify comment.  Turn test on
3098	the enclosing unit into assertion.
3099	(Add_Pending_Instantiation): New function moved from...
3100	* sem_ch12.ads (Add_Pending_Instantiation): ...here.
3101	* sem_ch12.adb (Add_Pending_Instantiation): ...here.
3102
31032019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3104
3105	* sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length
3106	after restoring Style_Max_Line_Length.
3107
31082019-08-13  Arnaud Charlet  <charlet@adacore.com>
3109
3110	* sem_ch13.adb (Check_Iterator_Functions): Protect against
3111	cascaded errors.
3112
31132019-08-13  Ed Schonberg  <schonberg@adacore.com>
3114
3115	* sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode
3116	conformance checks on child unit instance that is a compilation
3117	unit.
3118
31192019-08-13  Gary Dismukes  <dismukes@adacore.com>
3120
3121	* exp_dbug.adb (Fully_Qualify_Name): Add full name qualification
3122	for the E_Exception case.
3123
31242019-08-13  Gary Dismukes  <dismukes@adacore.com>
3125
3126	* exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using
3127	universal arithmetic, to avoid situations where the size
3128	computation overflows.
3129
31302019-08-13  Justin Squirek  <squirek@adacore.com>
3131
3132	* repinfo.adb (List_Scalar_Storage_Order): Modify conditionals
3133	for displaying ordering to always be triggered when -gnatR4 is
3134	in effect.
3135
31362019-08-13  Justin Squirek  <squirek@adacore.com>
3137
3138	* aspects.adb, aspects.ads: Register new aspect.
3139	* par-prag.adb (Prag): Register new pragma
3140	* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
3141	for new aspect similar to Aspect_Max_Entry_Queue_Length.
3142	* sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new
3143	pragma and set it to use the same processing as
3144	Pragma_Max_Queue_Length.
3145	* snames.ads-tmpl: Move definition of
3146	Name_Max_Entry_Queue_Length so that it can be processed as a
3147	pragma in addition to a restriction and add an entry for the
3148	pragma itself.
3149
31502019-08-13  Yannick Moy  <moy@adacore.com>
3151
3152	* sem_ch4.adb (Analyze_Allocator): Do not insert subtype
3153	declaration for allocator inside a spec expression.
3154
31552019-08-13  Yannick Moy  <moy@adacore.com>
3156
3157	* sem_res.adb (Resolve_Call): Do not inline calls inside record
3158	types.
3159
31602019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3161
3162	* sem_ch4.adb (Analyze_One_Call): Remove bypass for type
3163	mismatch in nested instantiations.
3164	* sem_ch8.adb (Find_Nearer_Entity): New function.
3165	(Find_Renamed_Entity): Use it to disambiguate the candidates for
3166	the renaming generated for an instantiation when it is
3167	ambiguous.
3168
31692019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3170
3171	* gnat1drv.adb (Adjust_Global_Switches): Do not set
3172	Back_End_Inlining in ASIS mode either.
3173
31742019-08-13  Olivier Hainque  <hainque@adacore.com>
3175
3176	* libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile
3177	binding to use it instead of DWORD for the dwNumberOfBytesToMap
3178	argument.
3179	* libgnat/g-sercom__mingw.adb (Read): State which definition of
3180	size_t to fetch in call to Last_Index.
3181
31822019-08-13  Arnaud Charlet  <charlet@adacore.com>
3183
3184	* gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass
3185	LN_S to relevant gnatlib targets.
3186	* gcc-interface/Makefile.in: Systematically pass LN_S to
3187	relevant gnatlib targets.
3188
31892019-08-13  Yannick Moy  <moy@adacore.com>
3190
3191	* sem_dim.adb (Analyze_Dimension,
3192	Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call,
3193	Analyze_Dimension_Extension_Or_Record_Aggregate): Return
3194	immediately when inside an inlined body.
3195	* sem_res.adb (Resolve_Call): Remove special checking now done
3196	inside Analyze_Dimension_Call.
3197
31982019-08-13  Justin Squirek  <squirek@adacore.com>
3199
3200	* exp_ch4.adb (Expand_N_Allocator): Add condition to detect
3201	library-level object declarations
3202
32032019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3204
3205	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
3206	(-gnateT): Document Double_Float_Alignment parameter and fix
3207	description of Double_Scalar_Alignment parameter.
3208	* gnat_ugn.texi: Regenerate.
3209
32102019-08-13  Eric Botcazou  <ebotcazou@adacore.com>
3211
3212	* exp_ch6.adb (Expand_Call_Helper): If back-end inlining is
3213	enabled, also instantiate the body of a generic unit containing
3214	a subprogram subject to aspect/pragma Inline_Always at
3215	optimization level zero.
3216	* sem_ch12.adb (Might_Inline_Subp): Minor tweak.
3217	(Analyze_Package_Instantiation): Do not instantiate the package
3218	body because of inlining considerations if the instantiation is
3219	done in a generic unit.  Move around similar condition involving
3220	the main unit.  Add test on Back_End_Inlining to processing for
3221	front-end inlining.
3222
32232019-08-13  Javier Miranda  <miranda@adacore.com>
3224
3225	* exp_disp.adb (Make_Secondary_DT): Handle record type
3226	derivations that have interface components located at fixed
3227	positions and interface components located at variable offset.
3228	The offset of components located at fixed positions is computed
3229	using the dummy object (similar to the case where all the
3230	interface components are located at fixed positions).
3231	(Make_DT): Build the dummy object for all tagged types that
3232	implement interface types (that is, build it also for types with
3233	variable size components), and use the dummy object to compute
3234	the offset of all tag components located at fixed positions when
3235	initializing the Interface_Table object.
3236
32372019-08-13  Justin Squirek  <squirek@adacore.com>
3238
3239	* gnatcmd.adb (GNATCmd): Add constant for new compiler switch
3240	--help-ada, and include usage subprogram. Add line to usage help
3241	explaining the new flag.
3242	(GNATCmd_Usage): Rename from locally declared Usage so as not to
3243	confuse with the newly imported version. Add new argument case
3244	for --help-ada and add bug report email to implicit display of
3245	help without the --help flag so as to unify output between the
3246	two cases.
3247
32482019-08-13  Dmitriy Anisimkov  <anisimko@adacore.com>
3249
3250	* libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in
3251	Invalid_Switch exception message.
3252
32532019-08-13  Yannick Moy  <moy@adacore.com>
3254
3255	* sem_util.adb (Traverse_More_Func): Take into account
3256	Loop_Actions inside N_Iterated_Component_Association nodes.
3257	* sinfo.ads: Document correctly Loop_Actions as a field of nodes
3258	of kind N_Iterated_Component_Association.
3259
32602019-08-13  Claire Dross  <dross@adacore.com>
3261
3262	* libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index,
3263	Reverse_Find_Index): Use bigger type to avoid range check
3264	failure at the last loop iteration.
3265
32662019-08-12  Dmitriy Anisimkov  <anisimko@adacore.com>
3267
3268	* libgnat/g-socket.adb (Is_IPv6_Address): Check that no less
3269	then 2 colons in IPv6 numeric address.
3270
32712019-08-12  Dmitriy Anisimkov  <anisimko@adacore.com>
3272
3273	* libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add
3274	parameter Quiet. Need to do not output error messages to
3275	console. Invalid_Switch exception generation surrounded by an
3276	error message.
3277
32782019-08-12  Ed Schonberg  <schonberg@adacore.com>
3279
3280	* exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code
3281	to generate proper checks when an actual for an in-out or out
3282	parameter has a non-null access type.  No constraints are
3283	applied to an inbound access parameter, but on exit a not-null
3284	check must be performed if the type of the actual requires it.
3285
32862019-08-12  Ed Schonberg  <schonberg@adacore.com>
3287
3288	* sem_util.adb (Is_Expaned_Priority_Attribute): Check whether
3289	call comes from a rewritten attribute before comparing name with
3290	Get_Ceiling run-time subprogram.
3291
32922019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3293
3294	* exp_util.ads (Component_May_Be_Bit_Aligned): Small comment
3295	tweaks.
3296	(Possible_Bit_Aligned_Component): Likewise.
3297	(Type_May_Have_Bit_Aligned_Components): Likewise.
3298	* exp_util.adb (Component_May_Be_Bit_Aligned): Likewise.
3299	(Possible_Bit_Aligned_Component): Likewise.
3300	(Type_May_Have_Bit_Aligned_Components): Likewise.
3301
33022019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3303
3304	* exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if
3305	either operand is a possibly unaligned slice.
3306	* exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a
3307	copy for a possibly unaligned object if it is represented as a
3308	scalar.
3309	* exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always
3310	return false if the target doesn't have strict alignment.
3311
33122019-08-12  Bob Duff  <duff@adacore.com>
3313
3314	* sem_ch12.adb (Instantiate_Package_Body): Remove suppression of
3315	checks in instances of internal units.
3316	* sem_ch6.adb (Analyze_Function_Return): Do not generate a
3317	constraint check on an extended_return_statement if the subtype
3318	of the return object in the statement is identical to the return
3319	subtype of the function.
3320
33212019-08-12  Bob Duff  <duff@adacore.com>
3322
3323	* libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the
3324	base subtype.  Clearly it makes no sense to loop "while Idx >=
3325	0", if Idx is of a nonnegative subtype.
3326
33272019-08-12  Bob Duff  <duff@adacore.com>
3328
3329	* libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being
3330	negative, since Field is range 0 .. something.
3331
33322019-08-12  Bob Duff  <duff@adacore.com>
3333
3334	* doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp,
3335	gnatstub): Remove documentation for Ada language version
3336	switches, and note that they are no longer needed.
3337
33382019-08-12  Gary Dismukes  <dismukes@adacore.com>
3339
3340	* sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the
3341	copied low and high bounds in the case where the loop range is
3342	given by a discrete_subtype_indication, to prevent hanging (or
3343	Assert_Failure) in Insert_Actions.
3344
33452019-08-12  Ed Schonberg  <schonberg@adacore.com>
3346
3347	* sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined
3348	equality has the same profile as the predefined equality before
3349	applying legality rule in RM 4.5.2 (9.8).
3350
33512019-08-12  Bob Duff  <duff@adacore.com>
3352
3353	* libgnat/a-except.ads: Update obsolete comment, still making
3354	clear that this is a variant.  Add explicit default for Id
3355	component of Exception_Occurrence, because that value is used.
3356	Define Null_Occurrence less redundantly.
3357	* libgnat/a-einuoc.adb: Minor simplification of code.
3358
33592019-08-12  Justin Squirek  <squirek@adacore.com>
3360
3361	* libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name,
3362	Is_Root_Directory, Is_Parent_Directory,
3363	Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory,
3364	Relative_Name, Compose): Add implementation and documentation.
3365	* libgnat/a-direct.adb (Containing_Directory): Modify routine to
3366	use routines from Ada.Directories.Hierarchical_File_Names and
3367	remove incorrect special case for parent directories.
3368	(Fetch_Next_Entry): Add check for current directory and parent
3369	directory and ignore them under certain circumstances.
3370	(Simple_Nmae): Add check for null result from
3371	Simple_Name_Internal and raise Name_Error.
3372	(Simple_Name_Internal): Add explicit check for root directories,
3373	sanitize trailing directory separators, and modify behavior so
3374	that current and parent directories are considered valid
3375	results.
3376	* Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS.
3377
33782019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3379
3380	* freeze.adb (Freeze_Entity): Give the same error for an
3381	Object_Size clause on a variable-sized type as for a Size
3382	clause.
3383
33842019-08-12  Gary Dismukes  <dismukes@adacore.com>
3385
3386	* sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization):
3387	For private types, set the Suppress_Initialization flag on the
3388	Full_View of the entity rather than the entity's base type.
3389
33902019-08-12  Yannick Moy  <moy@adacore.com>
3391
3392	* aspects.adb, aspects.ads (Aspect_No_Caching): New aspect.
3393	* contracts.adb, contracts.ads (Add_Contract_Item): Add handling
3394	of No_Caching.
3395	(Analyze_Object_Contract): Add handling of No_Caching.
3396	* einfo.adb, einfo.ads
3397	(Get_Pragma): Add handling of No_Caching.
3398	* doc/gnat_rm/implementation_defined_aspects.rst,
3399	doc/gnat_rm/implementation_defined_pragmas.rst: Document new
3400	aspect/pragma.
3401	* gnat_rm.texi: Regenerate.
3402	* par-prag.adb (Prag): New pragma Pragma_No_Caching.
3403	* sem_ch13.adb (Analyze_Aspect_Specifications,
3404	Check_Aspect_At_Freeze_Point): Add handling of No_Caching.
3405	* sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching.
3406	* sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now
3407	applies to No_Caching.
3408	* sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add
3409	handling of No_Caching.
3410	(No_Caching_Enabled): New query function.
3411	* snames.ads-tmpl: New names for pragma.
3412
34132019-08-12  Yannick Moy  <moy@adacore.com>
3414
3415	* sem_util.adb, sem_util.ads (Traverse_More_Func,
3416	Traverse_More_Proc): Add formal parameter for Itypes traversal.
3417
34182019-08-12  Yannick Moy  <moy@adacore.com>
3419
3420	* exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New
3421	procedure to share part of the attribute expansion with
3422	GNATprove mode.
3423	(Expand_N_Attribute_Reference): Extract part of the
3424	Size/Object_Size expansion in the new procedure
3425	Expand_Size_Attribute.
3426	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
3427	Size/Object_Size attributes using the new procedure
3428	Expand_Size_Attribute.
3429
34302019-08-12  Yannick Moy  <moy@adacore.com>
3431
3432	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only
3433	expand Enum_Rep attribute when its parameter is a literal.
3434
34352019-08-12  Justin Squirek  <squirek@adacore.com>
3436
3437	* sem_eval.adb (Check_Non_Static_Context): Add a condition to
3438	determine if a range violation constitues a warning or an error.
3439	(Out_Of_Range): Add a condition to determine if a range
3440	violation constitues a warning or an error.
3441
34422019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3443
3444	* exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion
3445	node but its expression instead, after having fetched its
3446	current value.  Clear the Do_Range_Check flag on entry.  Return
3447	early for a rewritten float-to-float conversion.  Remove
3448	redundant local variable.  Suppress all checks when inserting
3449	the temporary and do not reanalyze the node.
3450
34512019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3452
3453	* sprint.ads: Minor comment tweak.
3454
34552019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3456
3457	* checks.adb (Insert_Valid_Check): Do not retrieve the
3458	Do_Range_Check flag from the Original_Node but from the
3459	Validated_Object.  Remove useless bypass for floating-point
3460	types.
3461
34622019-08-12  Yannick Moy  <moy@adacore.com>
3463
3464	* sem_util.adb, sem_util.ads (Traverse_More_Func,
3465	Traverse_More_Proc): New traversal subprograms.
3466
34672019-08-12  Jerome Lambourg  <lambourg@adacore.com>
3468
3469	* libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call
3470	s-tpopsp.Self when actually needed.
3471
34722019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3473
3474	* exp_ch4.adb (Discrete_Range_Check): Return if checks are
3475	suppressed.
3476
34772019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3478
3479	* sem_res.adb: Add with & use clause for Sem_Mech and
3480	alphabetize.
3481	(Resolve_Actuals): Do not apply a scalar range check for the
3482	source of a conversion whose result is passed by reference to a
3483	valued procedure.
3484
34852019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3486
3487	* checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag
3488	on the validated object.
3489	* exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check
3490	flag on the actual here, as well as on the Expression if the
3491	actual is a N_Type_Conversion node.
3492	(Add_Validation_Call_By_Copy_Code): Generate the incoming range
3493	check if needed and reset the Do_Range_Check flag on the
3494	Expression if the actual is a N_Type_Conversion node.
3495	(Expand_Actuals): Do not reset the Do_Range_Check flag here.
3496	Generate the incoming range check for In parameters here instead
3497	of...
3498	(Expand_Call_Helper): ...here.  Remove redudant condition.
3499	* sem_res.adb (Resolve_Actuals): Use local variable A_Typ and
3500	remove obsolete comments.
3501	(Resolve_Type_Conversion): Do not force the Do_Range_Check flag
3502	on the operand if range checks are suppressed.
3503
35042019-08-12  Eric Botcazou  <ebotcazou@adacore.com>
3505
3506	* checks.adb (Activate_Range_Check): Remove redundant argument.
3507	(Generate_Range_Check): Likewise.
3508	(Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on
3509	entry and remove redundant condition.
3510
35112019-08-02  Alexandre Oliva  <oliva@adacore.com>
3512
3513	* libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New.
3514	(Claimed_Cleanup): New.
3515	(Begin_Handler, End_Handler): Document.
3516	* gcc-interface/trans.c (gigi): Switch to exception handler
3517	ABI #1.
3518	(Exception_Handler_to_gnu_gcc): Save the original cleanup
3519	returned by begin handler, pass it to end handler, and use
3520	EH_ELSE_EXPR to pass a propagating exception to end handler.
3521	(gnat_to_gnu): Leave the exception pointer alone for reraise.
3522	(add_cleanup): Handle EH_ELSE_EXPR, require it by itself.
3523
35242019-07-23  Ed Schonberg  <schonberg@adacore.com>
3525
3526	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations,
3527	Freeze_Entity_Checks): Include Aspect_CPU with other aspects
3528	whose expresssion may depend on a discriminant, and thus require
3529	that components of the type be made visible.
3530
35312019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
3532
3533	* checks.adb (Convert_And_Check_Range): Add Suppress parameter
3534	and pass it in the call to Insert_Actions.  Rename local
3535	variable.
3536	(Generate_Range_Check): Minor comment fixes.  Pass Range_Check
3537	in the first call to Convert_And_Check_Range and All_Checks in
3538	the second call.
3539	* exp_ch4.adb (Expand_N_Type_Conversion): Reset the
3540	Do_Overflow_Check flag in the float-to-float case too if there
3541	is also a range check.
3542
35432019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
3544
3545	* checks.adb (Activate_Overflow_Check): Remove redundant
3546	argument.
3547	* exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag.
3548	(Expand_N_Type_Conversion): Do not reset it here.
3549
35502019-07-23  Eric Botcazou  <ebotcazou@adacore.com>
3551
3552	* repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write.
3553	(Write_Val): Likewise.
3554
35552019-07-23  Ed Schonberg  <schonberg@adacore.com>
3556
3557	* aspects.ads: New table Operational_Aspect, used to distinguish
3558	between aspects that are view-specific, such as those related to
3559	iterators, and representation aspects that apply to all views of
3560	a type.
3561	* aspects.adb (Find_Aspect): If the aspect being sought is
3562	operational, do not ecamine the full view of a private type to
3563	retrieve it.
3564	* sem_ch5.adb (Analyze_Iterator_Specification): Improve error
3565	message when the intended domain of iteration does not implement
3566	the required iterator aspects.
3567
35682019-07-23  Yannick Moy  <moy@adacore.com>
3569
3570	* sem_spark.ads (Is_Local_Context): New function.
3571	* sem_spark.adb (Check_Declaration): Issue errors on violations
3572	of SPARK RM 3.10(4)
3573	(Process_Path): Do not issue error on borrow/observe during
3574	elaboration, as these are caught by the new rule.
3575
35762019-07-23  Yannick Moy  <moy@adacore.com>
3577
3578	* exp_ch7.adb (Create_Finalizer): Force finalizer not to be
3579	Ghost enabled.
3580	* exp_dbug.adb (Get_External_Name): Explain special case of
3581	Ghost finalizer.
3582
35832019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3584
3585	* repinfo.adb (List_Entities): Also list compiled-generated
3586	types present as Etype of objects.
3587
35882019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3589
3590	* sinfo.ads: Update the documentation about the
3591	Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags.
3592
35932019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3594
3595	* exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment.
3596	(Fixup_Universal_Fixed_Operation): Set the base type instead of
3597	the type of the enclosing type conversion on the operation.
3598
35992019-07-22  Ed Schonberg  <schonberg@adacore.com>
3600
3601	* exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute
3602	'Valid as a replacement for a range check on a discrete type
3603	when the bounds of the range are given by type conversions,
3604	because in such a case there are distinct types involved and the
3605	subbested attribute replacement would be misplaced.
3606
36072019-07-22  Yannick Moy  <moy@adacore.com>
3608
3609	* sem_spark.adb (Get_Root_Object, Is_Path_Expression,
3610	Is_Subpath_Expression): Add parameter Is_Traversal to adapt
3611	these functions to the case of paths returned from a traversal
3612	function.
3613	(Read_Indexes): Handle the case of an if-expression or
3614	case-expression.
3615	(Check_Statement): Check Emit_Messages only when issuing an
3616	error message. This is important as Emit_Messages may store the
3617	information that an error was detected.
3618
36192019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3620
3621	* checks.adb (Apply_Type_Conversion_Checks): Do not set
3622	Do_Range_Check flag on conversions from fixed-point types
3623	either.
3624	* exp_attr.adb: Add use and with clause for Expander.
3625	(Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set
3626	the Conversion_OK flag and do not generate overflow/range checks
3627	manually.
3628	* exp_ch4.adb (Expand_N_Qualified_Expression): Remove
3629	superfluous clearing of Do_Range_Check flag.
3630	(Discrete_Range_Check): New procedure to generate a range check
3631	for discrete types.
3632	(Real_Range_Check): Remove redundant local variable and adjust.
3633	Remove useless shortcut.  Clear Do_Range_Check flag on all
3634	paths.
3635	(Expand_N_Type_Conversion): Remove redundant test on
3636	Conversion_OK.  Call Discrete_Range_Check to generate range
3637	checks on discrete types.  Remove obsolete code for
3638	float-to-integer conversions.  Add code to generate range checks
3639	for conversions involving fixed-point types.
3640
36412019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3642
3643	* sprint.ads: Fix pasto in comment.
3644
36452019-07-22  Javier Miranda  <miranda@adacore.com>
3646
3647	* sem_res.adb (Resolve_Actuals): Replace code that displaces the
3648	pointer to an allocated object to reference its secondary
3649	dispatch table by a type conversion (which takes care of
3650	handling all cases).
3651
36522019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3653
3654	* sprint.adb (Sprint_Node_Actual)
3655	<N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces.
3656	(Write_Itype): Minor consistency fixes throughout.  Add support
3657	for printing ordinary and decimal fixed-point types and
3658	subtypes.
3659
36602019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3661
3662	* exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment.
3663
36642019-07-22  Ed Schonberg  <schonberg@adacore.com>
3665
3666	* libgnat/s-valboo.ads, libgnat/s-valcha.ads,
3667	libgnat/s-valdec.ads, libgnat/s-valenu.ads,
3668	libgnat/s-valint.ads, libgnat/s-vallld.ads,
3669	libgnat/s-vallli.ads, libgnat/s-valllu.ads,
3670	libgnat/s-valrea.ads, libgnat/s-valuns.ads,
3671	libgnat/s-valwch.ads: Change categorization of packages that
3672	implement attribute 'Value from Pure to Preelaborate, to prevent
3673	undesirable optimizations when the evaluation of the attribute
3674	raises Constraint_Error, but subsequent use of the result of
3675	this evsaluation is removed by a subsequent optimization.
3676
36772019-07-22  Ed Schonberg  <schonberg@adacore.com>
3678
3679	* sem_warn.adb (Check_References): Do not emit s warning on a
3680	referenced entity with no explicit assignment if the type of the
3681	entity has Preelaborable_Initialixation, such as
3682	Exception_Occurrence.
3683
36842019-07-22  Javier Miranda  <miranda@adacore.com>
3685
3686	* exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion
3687	to handle array indexes that are modular type.
3688	(Expand_N_Allocator): For 32-bit targets improve the generation
3689	of the runtime check associated with large arrays supporting
3690	arrays initialized with a qualified expression.
3691	* libgnat/s-imenne.adb (Image_Enumeration_8,
3692	Image_Enumeration_16, Image_Enumeration_32): Define the index of
3693	Index_Table with range Natural'First .. Names'Length since in
3694	the worst case all the literals of the enumeration type would be
3695	single letter literals and the Table built by the frontend would
3696	have as many components as the length of the names string. As a
3697	result of this enhancement, the internal tables declared using
3698	Index_Table have a length closer to the real needs, thus
3699	avoiding the declaration of large arrays on 32-bit CCG targets.
3700
37012019-07-22  Yannick Moy  <moy@adacore.com>
3702
3703	* sem_ch3.adb (Constrain_Access): Issue a message about ignored
3704	constraint.
3705
37062019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3707
3708	* sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the
3709	class-wide type if the type is tagged.
3710	(Use_One_Type): Add commentary on the handling of the class-wide
3711	type.
3712
37132019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3714
3715	* einfo.ads (Is_For_Access_Subtype): Delete.
3716	(Set_Is_For_Access_Subtype): Likewise.
3717	* einfo.adb (Is_For_Access_Subtype): Likewise.
3718	(Set_Is_For_Access_Subtype): Likewise.
3719	(Write_Entity_Flags): Do not write Is_For_Access_Subtype.
3720	* exp_ch4.adb (Expand_N_Selected_Component): Do not deal with
3721	it.
3722	* exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise.
3723	* sem_ch4.adb (Analyze_Explicit_Dereference): Likewise.
3724	* sem_ch3.adb (Build_Discriminated_Subtype): Do not build a
3725	special private subtype for access-to-record subtypes.
3726
37272019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3728
3729	* sem_ch3.adb (Complete_Private_Subtype): Rework the setting of
3730	the Etype of the full view for full base types that cannot
3731	contain any discriminant.  Remove code and comment about it in
3732	the main path.
3733
37342019-07-22  Ed Schonberg  <schonberg@adacore.com>
3735
3736	* sem_ch3.adb (Convert_Bound): Subsidiary of
3737	Floating_Point_Type_Declaration, to handle properly range
3738	specifications with bounds that may include static constants of
3739	a given type rather than real literals.
3740
37412019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3742
3743	* sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals
3744	too.
3745	(Rewrite_Range;): Minor tweak.
3746	(Resolve_Record_Aggregate): For a component with default
3747	initialization whose expression is an array aggregate, also
3748	rewrite the bounds of the component associations, if any.
3749
37502019-07-22  Gary Dismukes  <dismukes@adacore.com>
3751
3752	* exp_ch5.adb (Expand_N_Case_Statement): In the case where a
3753	case statement is rewritten as an equivalent if statement,
3754	inherit the From_Condition_Expression flag from the case
3755	statement.
3756
37572019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3758
3759	* sem_ch8.adb (Check_Constrained_Object): Further extend the
3760	special optimization to all limited types.
3761
37622019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3763
3764	* exp_attr.adb (Expand_N_Attribute_Reference)
3765	<Attribute_Enum_Val>: Set No_Truncation on the
3766	N_Unchecked_Type_Conversion built around the argument passed to
3767	the attribute.
3768
37692019-07-22  Nicolas Roche  <roche@adacore.com>
3770
3771	* libgnat/s-valrea.adb (Scan_Real): Ignore non significative
3772	digits to avoid converging to infinity in some cases.
3773
37742019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3775
3776	* libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight.
3777	(Encode_Wide_Wide_String): Likewise.
3778
37792019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3780
3781	* sem_warn.adb (Find_Var): Bail out for a function call with an
3782	Out or In/Out parameter.
3783
37842019-07-22  Nicolas Roche  <roche@adacore.com>
3785
3786	* terminals.c (__gnat_tty_waitpid): Support both blocking and
3787	not blocking mode.
3788	* libgnat/g-exptty.ads (Is_Process_Running): New function.
3789	* libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate
3790	a process if it is already dead.
3791
37922019-07-22  Ed Schonberg  <schonberg@adacore.com>
3793
3794	* freeze.adb (Freeze_Fixed_Point_Type): When freezing a
3795	fixed-point subtype, check whether the parent type declarastion
3796	includes an aspect specification for the 'Small type attribute,
3797	and inherit the specified value.
3798
37992019-07-22  Javier Miranda  <miranda@adacore.com>
3800
3801	* freeze.adb (Freeze_Subprogram): Check that C++ constructors
3802	must have external or link name.
3803
38042019-07-22  Ed Schonberg  <schonberg@adacore.com>
3805
3806	* sem_res.adb (Resolve_Selected_Component): If the prefix has a
3807	deferred reference, generate the correct reference now, to
3808	indicate that the previous assignment is used.  This prevents
3809	spurious warnings on useless assignments when compiling with all
3810	warnings enabled. when there is a subsequent call in the same
3811	stqtement list, in which the prefix of the selected component is
3812	the actual for an out parameter.
3813
38142019-07-22  Eric Botcazou  <ebotcazou@adacore.com>
3815
3816	* exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition
3817	of a while loop instead of simply relocating it.
3818
38192019-07-18  Arnaud Charlet  <charlet@adacore.com>
3820
3821	* Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c,
3822	cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c,
3823	argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c,
3824	seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C
3825	runtime files do not have any dependency on GCC include files.
3826	Remove unnecessary includes.
3827	Remove remaining references to VMS in runtime C file.
3828	* runtime.h: new File.
3829
38302019-07-13  Andreas Schwab  <schwab@linux-m68k.org>
3831
3832	* Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
3833
38342019-07-11  Piotr Trojanek  <trojanek@adacore.com>
3835
3836	* lib-writ.adb (Ensure_System_Dependency,
3837	Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access
3838	to table with a high-level query.
3839
38402019-07-11  Piotr Trojanek  <trojanek@adacore.com>
3841
3842	* checks.adb: Fix typo in comment.
3843	* sem.adb (Semantics): Avoid repeated calls to
3844	In_Extended_Main_Source_Unit by reusing an already-cached
3845	result.
3846	* sem_util.adb (First_Global): Fix style.
3847
38482019-07-11  Yannick Moy  <moy@adacore.com>
3849
3850	* sem_res.adb (Resolve_Call): Do not perform dimensionality
3851	checking on inlined bodies.
3852
38532019-07-11  Yannick Moy  <moy@adacore.com>
3854
3855	* debug.adb: Flip meaning of debug switch -gnatdF.
3856
38572019-07-11  Yannick Moy  <moy@adacore.com>
3858
3859	* sem_eval.adb (Is_Same_Value): Add special case for rewritten
3860	Loop_Entry attribute.
3861
38622019-07-11  Claire Dross  <dross@adacore.com>
3863
3864	* gnat1drv.adb: SPARK checking rules for pointer aliasing are
3865	moved to GNATprove backend.
3866	* sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic
3867	unit. Takes as parameters:
3868	 - Retysp which is used to query the most underlying type
3869	   visible in SPARK. We do not introduce aliasing checks for
3870	   types which are not visibly deep.
3871	 - Component_Is_Visible_In_SPARK is used to avoid doing pointer
3872	   aliasing checks on components which are not visible in SPARK.
3873	 - Emit_Messages returns True in the second phase of SPARK
3874	   analysis. Error messages for failed aliasing checks are only
3875	   output in this case.
3876	Additionally, errors on constructs not supported in SPARK are
3877	removed as duplicates of marking errors. Components are stored
3878	in the permission map using their original component to avoid
3879	inconsistencies between components of different views of the
3880	same type.
3881	(Check_Expression): Handle delta constraints.
3882	(Is_Deep): Exported so that we can check for SPARK restrictions
3883	on deep types inside SPARK semantic checkings.
3884	(Is_Traversal_Function): Exported so that we can check for SPARK
3885	restrictions on traversal functions inside SPARK semantic
3886	checkings.
3887	(Check_Call_Statement, Read_Indexes): Check wether we are
3888	dealing with a subprogram pointer type before querying called
3889	entity.
3890	(Is_Subpath_Expression): Image attribute can appear inside a
3891	path.
3892	(Check_Loop_Statement): Correct order of statements in the loop.
3893	(Check_Node): Ignore raise nodes.
3894	(Check_Statement): Use Last_Non_Pragma to get the object
3895	declaration in an extended return statement.
3896
38972019-07-11  Patrick Bernardi  <bernardi@adacore.com>
3898
3899	* bindgen.adb (Gen_Main): Do not generate a reference to
3900	Ada_Main_Program_Name when the Minimal_Binder flag is set.
3901	(Gen_Output_File_Ada): Do not output GNAT_Version and
3902	Ada_Main_Program_Name info if Minimal_Binder flag is set.
3903	* bindusg.adb: Add documentation for new -minimal switch.
3904	* gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch.
3905	* opt.ads: Add new global flag Minimal_Binder to indicate if the
3906	binder should not produce global variables.
3907	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
3908	Update documentation with new binder -minimal switch.
3909	* gnat_ugn.texi: Regenerate.
3910
39112019-07-11  Eric Botcazou  <ebotcazou@adacore.com>
3912
3913	* Makefile.rtl: Add warning note about compilation flags and
3914	capitalize.
3915
39162019-07-11  Ed Schonberg  <schonberg@adacore.com>
3917
3918	* exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New
3919	subsidiary routine Replace_Access_Definition, to handle properly
3920	a protected type PT one of whose private components is of type
3921	access PT.
3922
39232019-07-11  Dmitriy Anisimkov  <anisimko@adacore.com>
3924
3925	* libgnat/g-socket.ads (Level_Type): Add enumerators for
3926	IP_Protocol_For_ICMP, IP_Protocol_For_IGMP,
3927	IP_Protocol_For_RAW_Level.
3928	* libgnat/g-socket.adb (Levels): Handle them.
3929	* s-oscons-tmplt.c: Import socket protocols defined in
3930	netinet/in.h.
3931
39322019-07-11  Claire Dross  <dross@adacore.com>
3933
3934	* libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not
3935	reset the Has_Element flag if no element is freed.
3936
39372019-07-11  Arnaud Charlet  <charlet@adacore.com>
3938
3939	* errno.c: Remove obsolete support for MaRTE OS.
3940
39412019-07-11  Ed Schonberg  <schonberg@adacore.com>
3942
3943	* exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check
3944	is generated, analyze it with range check suppressed, because
3945	that check has been previously applied.
3946	* exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a
3947	type conversion to the type of the LHS, do not apply a predicate
3948	check to the RHS because it will have been generated already
3949	during its expansion.
3950	* exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to
3951	handle a predicate check on a constant entity whose value is
3952	static.
3953
39542019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
3955
3956	* bindo.adb: Remove the documentation of switch -d_N because it
3957	is no longer in use.
3958	* bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge):
3959	New routine.
3960	* bindo-writers.adb (Write_Dependency_Edge): Add the missing
3961	case of a spec-before-body edge.
3962
39632019-07-11  Dmitriy Anisimkov  <anisimko@adacore.com>
3964
3965	* libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator.
3966	* libgnat/g-socket.adb (Modes): Handle Socket_Raw.
3967
39682019-07-11  Justin Squirek  <squirek@adacore.com>
3969
3970	* exp_ch9.adb (Build_Private_Protected_Declaration): Add
3971	exception for the moving of pragmas to internally generated
3972	specs for pragma Unreferenced.
3973
39742019-07-11  Bob Duff  <duff@adacore.com>
3975
3976	* doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent
3977	documentation for gnatmetric.
3978	* gnat_ugn.texi: Regenerate.
3979
39802019-07-11  Bob Duff  <duff@adacore.com>
3981
3982	* doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
3983	--spaces-only switch.
3984
39852019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
3986
3987	* sem_util.adb (Null_Status): Assume that an erroneous construct
3988	has an undefined null status.
3989
39902019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
3991
3992	* checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb,
3993	sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting.
3994
39952019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
3996
3997	* sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being
3998	renamed using routine Get_Object_Name which takes care of
3999	various name forms.
4000	(Get_Object_Name): New routine.
4001
40022019-07-11  Ed Schonberg  <schonberg@adacore.com>
4003
4004	* exp_ch6.adb (Can_Fold_Predicate_Call): New function,
4005	subsidiary of Expand_Call_Helper, to compute statically a
4006	predicate check when the argument is a static integer.
4007
40082019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
4009
4010	* sem_res.adb (Resolve_Op_Not): Do not rewrite an equality
4011	operator into a function call when the operator is intrinsic.
4012
40132019-07-11  Thomas Quinot  <quinot@adacore.com>
4014
4015	* sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call
4016	Set_SCO_Pragma_Enabled for the dynamic predicate case.
4017
40182019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
4019
4020	* exp_util.ads, exp_util.adb (Needs_Finalization): Move to
4021	Sem_Util.
4022	* sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark
4023	the protected type as having controlled components when it
4024	contains at least one such component.
4025	* sem_util.ads, sem_util.adb (Needs_Finalization): New
4026	function.
4027
40282019-07-11  Eric Botcazou  <ebotcazou@adacore.com>
4029
4030	* alloc.ads (Rep_JSON_Table_Initial): New constant.
4031	(Rep_JSON_Table_Increment): Likewise.
4032	* debug.adb: Document -gnatd_j switch.
4033	* gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add
4034	repinfo-input.o.
4035	* gnat1drv.adb: Add with clause for Repinfo.Input.
4036	Add with and use clauses for Sinput.
4037	(Read_JSON_Files_For_Repinfo): New procedure.
4038	(Gnat1drv1): Deal with -gnatd_j switch.
4039	* repinfo-input.ad[sb]: New unit.
4040	* snames.ads-tmpl (Name_Discriminant): New constant.
4041	(Name_Operands): Likewise.
4042
40432019-07-11  Justin Squirek  <squirek@adacore.com>
4044
4045	* checks.adb (Apply_Accessibility_Check): Add check for constant
4046	folded conditions on accessibility checks.
4047
40482019-07-11  Arnaud Charlet  <charlet@adacore.com>
4049
4050	* libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread):
4051	Update comments. Add new version taking a Task_Id.
4052
40532019-07-11  Hristian Kirtchev  <kirtchev@adacore.com>
4054
4055	* bindo.adb: Update the section of switches and debugging
4056	elaboration issues.
4057	* bindo.ads: Add type Elaboration_Phase.
4058	* bindo-augmentors.adb: Add use clause for
4059	Bindo.Writers.Phase_Writers.
4060	(Augment_Library_Graph): Signal the start and end of the
4061	aubmentation phase.
4062	* bindo-builders.adb: Add with and use clause for Bindo.Writers.
4063	Add use clause for Bindo.Writers.Phase_Writers.
4064	(Build_Invocation_Graph): Signal the start and end of the
4065	invocation graph construction phase.
4066	(Build_Library_Graph): Signal the start and end of the library
4067	graph construction phase.
4068	* bindo-diagnostics.adb: Add use clause for
4069	Bindo.Writers.Phase_Writers.
4070	(Diagnose_Cycle): Signal the start and end of the cycle
4071	diagnostic phase.
4072	* bindo-elaborators.adb: Add use clause for
4073	Bindo.Writers.Phase_Writers.
4074	(Elaborate_Units): Signal the start and end of the unit
4075	elaboration phase.
4076	* bindo-graphs.adb: Add use clause for
4077	Bindo.Writers.Phase_Writers.
4078	(Find_Components): Signal the start and end of the component
4079	discovery phase.
4080	(Find_Cycles): Signal the start and end of the cycle discovery
4081	phase.
4082	* bindo-units.adb: Add with and use clause for Bindo.Writers.
4083	Add use clause for Bindo.Writers.Phase_Writers.
4084	(Collect_Elaborable_Units): Signal the start and end of the unit
4085	collection phase.
4086	* bindo-validators.adb: Add with and use clause for
4087	Bindo.Writers.  Add use clause for Bindo.Writers.Phase_Writers.
4088	(Validate_Cycles, Validate_Elaboration_Order,
4089	Validate_Invocation_Graph, Validate_Library_Graph): Signal the
4090	start and end of the libray graph validation phase.
4091	* bindo-writers.ads, bindo-writers.adb: Add new nested package
4092	Phase_Writers.
4093	* debug.adb: Update the documentation of switch d_S.
4094
40952019-07-11  Yannick Moy  <moy@adacore.com>
4096
4097	* sem_res.adb (Check_Argument_Order): Special case calls to
4098	operators.
4099
41002019-07-10  Dmitriy Anisimkov  <anisimko@adacore.com>
4101
4102	* libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops
4103	dependence on System.Streams.Stream_IO.
4104
41052019-07-10  Ed Schonberg  <schonberg@adacore.com>
4106
4107	* sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of
4108	the literal if prior analysis determined that its type is a
4109	modular integer type.
4110
41112019-07-10  Doug Rupp  <rupp@adacore.com>
4112
4113	* init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2).
4114
41152019-07-10  Ed Schonberg  <schonberg@adacore.com>
4116
4117	* sem_ch8.adb (Check_Constrained_Object): A record that is
4118	limited because of the presence of a limited component is
4119	constrained, and no subtype indiciation needs to be created for
4120	it, just as is the case for declared limited records.
4121
41222019-07-10  Yannick Moy  <moy@adacore.com>
4123
4124	* sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New
4125	function to determine if a subprogram is protected.
4126	* sem_spark.adb (Setup_Protected_Components): New procedure to
4127	add protected components to the environment.
4128	(Check_Callable_Body): Call the new Setup_Protected_Components.
4129	(Check_Package_Spec): Merge local environment with enclosing one
4130	when done.
4131
41322019-07-10  Claire Dross  <dross@adacore.com>
4133
4134	* sem_spark.adb (Check_Expression): Allow digits constraints as
4135	input.
4136	(Illegal_Global_Usage): Pass in the entity.
4137	(Is_Subpath_Expression): New function to allow different nodes
4138	as inner parts of a path expression.
4139	(Read_Indexes): Allow concatenation and aggregates with box
4140	expressions.  Allow attributes Update and Loop_Entry.
4141	(Check_Expression): Allow richer membership test.
4142	(Check_Node): Ignore bodies of generics.
4143	(Get_Root_Object): Allow concatenation and attributes.
4144
41452019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4146
4147	* sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to
4148	discover the type of a full view discriminant.
4149
41502019-07-10  Arnaud Charlet  <charlet@adacore.com>
4151
4152	* doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's
4153	doc for the depth switch.
4154
41552019-07-10  Bob Duff  <duff@adacore.com>
4156
4157	* doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's
4158	--source-line-breaks switch.
4159
41602019-07-10  Justin Squirek  <squirek@adacore.com>
4161
4162	* doc/gnat_rm/implementation_defined_attributes.rst: Add mention
4163	of 'Image attribute with 'Img's entry to mention additional
4164	added 2012 usage of Obj'Image.
4165	* doc/gnat_rm/implementation_defined_pragmas.rst: Correct
4166	mispelling of Async_Writers.
4167	* gnat_rm.texi: Regenerate.
4168	* sem_prag.adb (Analyze_Pragma): Correct mispelling of
4169	Async_Writers.
4170	* sem_util.adb (State_Has_Enabled_Property): Correct mispelling
4171	of Async_Writers.
4172
41732019-07-10  Simon Buist  <buist@adacore.com>
4174
4175	* sem_util.ads (Child_Prefix): New constant.
4176	* sem_util.adb (Unique_Name): Add a special prefix to child
4177	units that have a nested subprogram or package.
4178
41792019-07-10  Arnaud Charlet  <charlet@adacore.com>
4180
4181	* sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert.
4182
41832019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4184
4185	* sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the
4186	spelling in certain error messages.
4187	(Check_Pragma_Implemented): Correct the spelling in certain
4188	error messages.
4189
41902019-07-10  Eric Botcazou  <ebotcazou@adacore.com>
4191
4192	* Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre.
4193	* libgnat/g-brapre.ads: New package specification.
4194	* doc/gnat_rm/the_gnat_library.rst: Document it.
4195	* gnat_rm.texi: Regenerate.
4196
41972019-07-10  Yannick Moy  <moy@adacore.com>
4198
4199	* osint-c.adb (Set_File_Name): Always add extension for multiple
4200	units per file mode.
4201
42022019-07-10  Corentin Gay  <gay@adacore.com>
4203
4204	* sysdep.c: Put include directive for 'vxWorks.h' before any
4205	other VxWorks headers.
4206
42072019-07-10  Eric Botcazou  <ebotcazou@adacore.com>
4208
4209	* doc/gnat_rm/implementation_defined_attributes.rst
4210	(Scalar_Storage_Order): Minor tweaks.  Add note about debuggers.
4211	* gnat_rm.texi: Regenerate.
4212
42132019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4214
4215	* exp_ch4.adb (Expand_N_Case_Expression): Mark the generated
4216	assignments to the temporary result as being OK because the
4217	expansion of case expressions is correct by construction.
4218	(Is_Copy_Type): Update the predicate to match the comment
4219	within.
4220
42212019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4222
4223	* bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb,
4224	sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb,
4225	sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb,
4226	sem_util.adb, warnsw.ads: Minor reformatting.
4227
42282019-07-10  Joffrey Huguet  <huguet@adacore.com>
4229
4230	* libgnat/a-strbou.ads, libgnat/a-strfix.ads,
4231	libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global
4232	contracts, contract cases, preconditions and postconditions to
4233	procedures and functions.
4234
42352019-07-10  Doug Rupp  <rupp@adacore.com>
4236
4237	* sysdep.c (__gnat_is_file_not_found_error): Reformulate to also
4238	work for vxworks7r2 SR0610.
4239
42402019-07-10  Doug Rupp  <rupp@adacore.com>
4241
4242	* env.c (__gnat_environ): Reformulate to also work for
4243	vxworks7r2 SR0610.
4244
42452019-07-10  Patrick Bernardi  <bernardi@adacore.com>
4246
4247	* Makefile.rtl: Handle vxworks7r2 ppc target
4248
42492019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4250
4251	* bindo.adb: Update the section on switches.
4252	* bindo-graphs.adb
4253	(Add_Cycle, Add_Vertex_And_Complement): Remove.
4254	(Create): The graph no longer needs a set of recorded cycles
4255	because the cycles are not rediscovered in permuted forms.
4256	(Cycle_End_Vertices): New routine.
4257	(Destroy): The graph no longer needs a set of recorded cycles
4258	because the cycles are not rediscovered in permuted forms.
4259	(Destroy_Library_Graph_Vertex): Move to the library level.
4260	(Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge):
4261	Remove.
4262	(Find_Cycles_From_Successor, Find_Cycles_From_Vertex,
4263	Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines.
4264	(Insert_And_Sort): Remove.
4265	(Is_Elaborate_Body_Edge): Use predicate
4266	Is_Vertex_With_Elaborate_Body.
4267	(Is_Recorded_Cycle): Remove.
4268	(Is_Vertex_With_Elaborate_Body): New routine.
4269	(Normalize_And_Add_Cycle): Remove.
4270	(Precedence): Rename to xxx_Precedence, where xxx relates to the
4271	input.  These versions better reflect the desired input
4272	precedence.
4273	(Record_Cycle): New routine.
4274	(Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove.
4275	(Trace_xxx): Update all versions to use debug switch -d_t.
4276	(Trace_Component): New routine.
4277	(Trace_Eol): Removed.
4278	(Trace_Vertex): Do not output the component as this information
4279	is already available when the component is traced.
4280	(Unvisit, Visit): New routine.
4281	* bindo-graphs.ads: Add new instance LGV_Lists.  Remove instance
4282	RC_Sets.  Update the structure of type Library_Graph_Attributes
4283	to remove the set of recorded cycles.
4284	(Destroy_Library_Graph_Vertex): Move to the library level.
4285	* bindo-writers.adb (Write_Component_Vertices): Output
4286	information about the number of vertices.
4287	* debug.adb: Document the use of binder switch -d_t.  Update the
4288	use of binder switch -d_T.
4289
42902019-07-10  Yannick Moy  <moy@adacore.com>
4291
4292	* sem_spark.adb (Get_Root_Object): Replace precondition by error
4293	message.
4294	(Read_Indexes): Replace precondition by error message.
4295	(Check_Callable_Body): Check only traversal function returns an
4296	anonymous access type.
4297	(Check_Expression): Issue error on unexpected expression as
4298	path.
4299	* sem_util.adb (First_Global): Fix access to global on
4300	entry/task.
4301
43022019-07-10  Javier Miranda  <miranda@adacore.com>
4303
4304	* exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram.
4305	(Expand_Call_Helper): Handle non-limited views when we check if
4306	any formal is a class-wide interface type.
4307	* exp_disp.adb (Expand_Interface_Actuals): Handle non-limited
4308	views when we look for interface type formals to force "this"
4309	displacement.
4310
43112019-07-10  Ed Schonberg  <schonberg@adacore.com>
4312
4313	* sem_res.adb (Resolve_Equality_Op): Do not replace the resolved
4314	operator by its alias if expander is not active, because the
4315	operand type may not be frozen yet and its inherited operations
4316	have not yet been created.
4317
43182019-07-10  Hristian Kirtchev  <kirtchev@adacore.com>
4319
4320	* bindo-elaborators.adb (Elaborate_Units): Set attribute
4321	Elab_Position of all elaborated units.
4322	(Set_Unit_Elaboration_Positions): New routine.
4323
43242019-07-10  Gary Dismukes  <dismukes@adacore.com>
4325
4326	* exp_util.adb: Reformatting and a typo fix.
4327
43282019-07-10  Yannick Moy  <moy@adacore.com>
4329
4330	* exp_util.adb (Remove_Side_Effects): Prefer renamings for
4331	objects of possible owning type in GNATprove mode.
4332
43332019-07-09  Ed Schonberg  <schonberg@adacore.com>
4334
4335	* sem_ch3.adb (Analyze_Object_Declaration): If the object type
4336	is a composite type that has a dynamic predicate and, the
4337	expression in the declaration is an aggregate, the generated
4338	predicate check must appear after the expanded code for the
4339	aggregate, which will appear after the rewritten object
4340	declarastion.
4341
43422019-07-09  Justin Squirek  <squirek@adacore.com>
4343
4344	* sem_eval.adb (Expr_Value_E): Add conditional to correctly
4345	handle constant enumerated character types.
4346
43472019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4348
4349	* libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper
4350	type for SpinCount component.
4351
43522019-07-09  Justin Squirek  <squirek@adacore.com>
4353
4354	* exp_ch4.adb (Expand_N_Allocator): Add conditional to detect
4355	the presence of anoymous access type allocators and issue a
4356	warning if the appropriate warning flag is enabled.
4357	* warnsw.ads: Add new warning flag for anonymous allocators
4358	* warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings,
4359	Set_Underscore_Warning_Switch): Register new flags.
4360	(WA_Warnings): Register new flag as an "all warnings" switch
4361	* usage.adb,
4362	doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4363	Document new warning switches -gnatw_a and -gnatw_A.
4364	* gnat_ugn.texi: Regenerate.
4365
43662019-07-09  Ed Schonberg  <schonberg@adacore.com>
4367
4368	* sem_ch4.adb (Diagnose_Call): Improve error recovery when a
4369	local subprogram name hides a possible candidate name declared
4370	in a child package in the context of the current unit.
4371	* sem_ch6.adb (Process_Formals): Protect against malformed
4372	formal types when the parameter type does not denote an entity.
4373
43742019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>
4375
4376	* bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a
4377	DFS from an elaboration root whose corresponding unit lacks
4378	elaboration code. This behavior mimics that of the old
4379	elaboration order mechanism.
4380	* bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the
4381	vertex tracing within the functional branches of the routine.
4382	This prevents spurious trace output.
4383	(Has_No_Elaboration_Code): New routine.
4384	(Trace_Cycle, Trace_Edge): Update the various Ids to use the
4385	"standard" trace format.
4386	* bindo-graphs.ads (Has_No_Elaboration_Code): New routine.
4387	* bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code):
4388	New routine.
4389
43902019-07-09  Piotr Trojanek  <trojanek@adacore.com>
4391
4392	* ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb,
4393	doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads,
4394	exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb,
4395	exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb,
4396	fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb,
4397	namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb,
4398	prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb,
4399	sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb,
4400	sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb,
4401	sinfo.ads: Replace ".  " with ". ". Minor reformatting and typo
4402	corrections.
4403	* gnat_ugn.texi: Generate.
4404
44052019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>
4406
4407	* bindo.ads: Move type Precedence_Kind from the private to the
4408	visible part of the unit.
4409	* bindo-augmentors.adb: Remove the use of global data as it is
4410	bad practice.
4411	(Augment_Library_Graph): Update the parameter profile.
4412	(Is_Visited, Set_Is_Visited): Remove.
4413	(Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the
4414	parameter profile and comment on usage.
4415	(Visit_Vertex): Likewise.  Also keep track of which invocation
4416	edge activates a task.
4417	* bindo-augmentors.ads (Augment_Library_Graph): Update the
4418	parameter profile and comment on usage.
4419	* bindo-builders.adb (Create_Forced_Edge,
4420	Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to
4421	Add_Edge.
4422	* bindo-diagnostics.adb: Add with end use clauses for Restrict
4423	and Rident.
4424	(Output_Dynamic_Model_Suggestions): Remove.
4425	(Output_Invocation_Related_Suggestions): New routine.
4426	(Output_Suggestions): Output all invocation-related suggestions
4427	together.
4428	* bindo-elaborators.adb: Remove types Comparator_Ptr and
4429	Predicate_Ptr.
4430	(Find_Best_Vertex): Update the parameter profile.
4431	* bindo-graphs.adb (Activates_Task): New routine.
4432	(Add_Body_Before_Spec_Edge): Update the call to
4433	Add_Edge_With_Return.
4434	(Add_Edge): Update the parameter profile and the call to
4435	Add_Edge_With_Return.
4436	(Add_Edge_With_Return): Update the parameter profile and comment
4437	on usage.
4438	(At_Least_One_Edge_Satisfies): New routine.
4439	(Contains_Elaborate_All_Edge): Reimplement.
4440	(Contains_Static_Successor_Edge, Contains_Task_Activation): New
4441	routine.
4442	(Contains_Weak_Static_Successor): Remove.
4443	(Is_Static_Successor_Edge): New routine.
4444	* bindo-graphs.ads: Add types LGE_Predicate_Ptr,
4445	LGV_Comparator_Ptr, and LGV_Predicate_Ptr.  Update type
4446	Library_Graph_Edge_Attributes to capture whether an invocation
4447	edge activates a task.  Update the value of
4448	No_Library_Graph_Edge_Attributes.
4449	(Activates_Task): Update the parameter profile and comment on
4450	usage.
4451	(Contains_Static_Successor_Edge, Contains_Task_Activation): New
4452	routines.
4453	(Contains_Weak_Static_Successor): Remove.
4454	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst:
4455	Update the documentation to reflect the new task-related advice.
4456	* gnat_ugn.texi: Regenerate.
4457
44582019-07-09  Piotr Trojanek  <trojanek@adacore.com>
4459
4460	* exp_util.adb (Containing_Package_With_Ext_Axioms): Replace
4461	low-level Ekind test with a high-level wrapper.
4462
44632019-07-09  Arnaud Charlet  <charlet@adacore.com>
4464
4465	* libgnat/s-memory.adb: Disable calls to Abort defer/undefer
4466	when ZCX_By_Default.
4467
44682019-07-09  Javier Miranda  <miranda@adacore.com>
4469
4470	* sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are
4471	not allowed for a derivation of a generic type. Extend the
4472	current test to check that none of the parents is a generic
4473	type.
4474
44752019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>
4476
4477	* exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb,
4478	sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor
4479	reformatting.
4480
44812019-07-09  Ed Schonberg  <schonberg@adacore.com>
4482
4483	* sem_res.adb (Resolve_Equality_Op): If the node was overloaded,
4484	set properly the entity to which the node has been resolved. The
4485	original entity is the first one found during analysis, and is
4486	not necessarily the resolved one.
4487	(Resolve_Op_Not): If the argument of negation is an overloaded
4488	equality operation, call its resolution directly given that the
4489	context type does not participate in overload resolution.
4490
44912019-07-09  Hristian Kirtchev  <kirtchev@adacore.com>
4492
4493	* bindo.adb: Remove with and use clauses for Debug.  Add with
4494	and use clauses for Opt.
4495	(Find_Elaboration_Order): Enable the v4.0 elaboration order. The
4496	v3.0 mechanism is now available under binder switch -H.
4497	* bindusg.adb (Display): Enable switch -H.
4498	* debug.adb: Free compiler switch -gnatd_G.  Free binder switch
4499	-d_N.
4500	* sem_elab.adb: Update the section on switches to remove
4501	-gnatd_G.
4502	(Invocation_Graph_Recording_OK): The invocation graph is now
4503	unconditionally recorded in ALI files.
4504	* switch-b.adb (Scan_Binder_Switches): Scan switch -H.
4505	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
4506	Update the documentation on compiler switches related to
4507	elaboration.  Update the documentation on binder switches to
4508	include switch -H.
4509	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
4510	the documentation on elaboration order handling in GNAT.
4511	* gnat_ugn.texi: Regenerate.
4512
45132019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4514
4515	* repinfo.adb (List_Entities): Disregard formals altogether.
4516	(List_Name): Properly escape the double quote in the JSON
4517	output.
4518
45192019-07-09  Javier Miranda  <miranda@adacore.com>
4520
4521	* exp_util.adb (Remove_Side_Effects): Preserve the
4522	Do_Range_Check flag.
4523
45242019-07-09  Yannick Moy  <moy@adacore.com>
4525
4526	* sinfo.ads: Refine comment for Do_Range_Check.
4527
45282019-07-09  Yannick Moy  <moy@adacore.com>
4529
4530	* exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand
4531	attribute reference on Enum_Rep.
4532
45332019-07-09  Ed Schonberg  <schonberg@adacore.com>
4534
4535	* sem_ch12.adb (Instantiate_Formal_Package): Handle properly the
4536	case where the actual for a formal package in an instance is the
4537	current instance of an enclosing generic package.
4538	(Check_Formal_Packages): If the formal package declaration is
4539	box-initialized or lacks associations altogether, no internal
4540	instance was created to verify conformance, and there is no
4541	validating package to remove from tree.
4542
45432019-07-09  Yannick Moy  <moy@adacore.com>
4544
4545	* freeze.adb (Build_Renamed_Body): Do not set body to inline in
4546	GNATprove mode.
4547
45482019-07-09  Yannick Moy  <moy@adacore.com>
4549
4550	* exp_util.adb (Expand_Subtype_From_Expr): Still expand the type
4551	of static expressions in GNATprove_Mode.
4552	* sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete
4553	special case for GNATprove_Mode.
4554
45552019-07-09  Piotr Trojanek  <trojanek@adacore.com>
4556
4557	* doc/gnat_rm/the_gnat_library.rst,
4558	doc/gnat_ugn/building_executable_programs_with_gnat.rst,
4559	erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads,
4560	libgnat/g-regexp.ads, libgnat/g-regpat.ads,
4561	libgnat/g-spipat.ads, libgnat/s-os_lib.ads,
4562	libgnat/s-regexp.ads: Reword "wild card" to "wildcard".
4563	* gnat_rm.texi, gnat_ugn.texi: Regenerate.
4564
45652019-07-09  Yannick Moy  <moy@adacore.com>
4566
4567	* sem_spark.adb (Check_Expression): Handle correctly implicit
4568	assignments as part of allocators and (extension) aggregates.
4569	(Get_Root_Object): Adapt for new path expressions.
4570	(Is_Path_Expression): Return True for (extension) aggregate.
4571
45722019-07-09  Piotr Trojanek  <trojanek@adacore.com>
4573
4574	* einfo.ads: Fix a typo.
4575
45762019-07-09  Ed Schonberg  <schonberg@adacore.com>
4577
4578	* sem_util.adb (Scope_Within_Or_Same): Handle properly task
4579	bodies and protected bodies, so that local variables within have
4580	their proper scopes after these constructs have been rewritten
4581	during expansion. This patch resembles but is not identical to
4582	the code in Scope_Within.
4583
45842019-07-09  Arnaud Charlet  <charlet@adacore.com>
4585
4586	* gnat1drv.adb (Adjust_Global_Switches): Set
4587	Dynamic_Elaboration_Checks to True in CodePeer mode.
4588
45892019-07-09  Yannick Moy  <moy@adacore.com>
4590
4591	* sem_spark.adb (Get_Perm_Or_Tree): Issue an error when
4592	encountering unknown global variable.
4593
45942019-07-09  Yannick Moy  <moy@adacore.com>
4595
4596	* sem_spark.adb (Check_Expression): Change signature to take an
4597	Extended_Checking_Mode, for handling read permission checking of
4598	sub-expressions in an assignment.
4599	(Check_Parameter_Or_Global): Adapt to new behavior of
4600	Check_Expression for mode Assign.
4601	(Check_Safe_Pointers): Do not analyze generic bodies.
4602	(Check_Assignment): Separate checking of the target of an
4603	assignment.
4604
46052019-07-09  Eric Botcazou  <ebotcazou@adacore.com>
4606
4607	* repinfo.ads (JSON format): Adjust.
4608	* repinfo.adb (Need_Blank_Line): Rename to...
4609	(Need_Separator): ...this.
4610	(Blank_Line): Rename to...
4611	(Write_Separator): ...this and add JSON specific handling.
4612	(List_Array_Info): Adjust to above renaming.
4613	(List_Object_Info): Likewise.
4614	(List_Record_Info): Likewise.
4615	(List_Subprogram_Info): Likewise.
4616	(List_Type_Info): Likewise.
4617	(List_Entities): Do not set Need_Blank_Line.
4618	(List_Rep_Info): Set Need_Separator and add JSON specific
4619	handling. Output a single JSON stream in the  normal case.
4620
46212019-07-09  Arnaud Charlet  <charlet@adacore.com>
4622
4623	* doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on
4624	-fdump-ada-spec now that we generate Ada 2012.
4625	* gnat_ugn.texi: Regenerate.
4626
46272019-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4628
4629	* repinfo.adb (List_Common_Type_Info): New procedure extracted
4630	from...
4631	(List_Type_Info): ...here.  Call it for the common information,
4632	start with a blank line and output the linker section at the
4633	end, if any.
4634	(List_Mechanisms): Rename to...
4635	(List_Subprogram_Info): ...this.
4636	(List_Array_Info): Call List_Common_Type_Info.
4637	(List_Entities): Adjust to above change and renaming.
4638	(List_Record_Info): Call List_Common_Type_Info.
4639
46402019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
4641
4642	* libgnat/g-sercom.ads
4643	(Serial_Port_Descriptor): New type.
4644	(Serial_Port): Add a comment, make it hold a
4645	Serial_Port_Descriptor.
4646	(To_Ada, To_C): New procedures.
4647	(Port_Data, Port_Data_Access): Remove types.
4648	* libgnat/g-sercom.adb (To_Ada): New stub.
4649	* libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb:
4650	Update implementations accordingly.
4651	* s-oscons-tmplt.c: Bind Serial_Port_Descriptor to
4652	System.Win32.HANDLE on Windows, and to Interfaces.C.int on
4653	Linux. Add "Interfaces.C." prefix for other basic integer type
4654	bindings.
4655	* xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix
4656	for subtypes generation.
4657
46582019-07-08  Arnaud Charlet  <charlet@adacore.com>
4659
4660	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
4661	Update documentation on No_Exceptions restriction.
4662	* gnat_rm.texi: Regenerate.
4663
46642019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
4665
4666	* libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid.
4667
46682019-07-08  Piotr Trojanek  <trojanek@adacore.com>
4669
4670	* sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect
4671	package and subprogram bodies.
4672
46732019-07-08  Bob Duff  <duff@adacore.com>
4674
4675	* doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation
4676	of ignored GNATpp switch.
4677
46782019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>
4679
4680	* doc/gnat_rm/implementation_defined_pragmas.rst:
4681	Update the documentation of pragma Initialize_Scalars.
4682	* gnat_rm.texi: Regenerate.
4683
46842019-07-08  Javier Miranda  <miranda@adacore.com>
4685
4686	* exp_ch4.adb (Tagged_Membership): Fix regression silently
4687	introduced in r260738 that erroneouslusy causes the evaluation
4688	to True of the membership test when the left operand of the
4689	membership test is a class-wide interface object and the right
4690	operand is a type that implements such interface type.
4691
46922019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>
4693
4694	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not
4695	register an address clause when its prefix denotes a generic
4696	formal object.
4697
46982019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>
4699
4700	* bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence
4701	of an Elaborate_All edge before iterating over the edges of the
4702	cycle.
4703	(Output_Elaborate_Body_Transition): Update the parameter profile
4704	and the comment on usage. Add a missing case where the edge is
4705	within the context of an Elaborate_All.
4706	(Output_Transition): Update the call to
4707	Output_Elaborate_Body_Transition.
4708	* bindo-graphs.ads, bindo-graphs.adb
4709	(Contains_Elaborate_All_Edge): New routine.
4710
47112019-07-08  Piotr Trojanek  <trojanek@adacore.com>
4712
4713	* lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for
4714	the fake __HEAP entity.
4715
47162019-07-08  Daniel Mercier  <mercier@adacore.com>
4717
4718	* gnat1drv.adb: Suppress warnings on memory representation in
4719	CodePeer compiler mode.
4720
47212019-07-08  Nicolas Roche  <roche@adacore.com>
4722
4723	* rtinit.c (__gnat_runtime_initialize): Remove dependency on
4724	CommandLineToArgvW.
4725
47262019-07-08  Doug Rupp  <rupp@adacore.com>
4727
4728	* Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7.
4729
47302019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
4731
4732	* Makefile.rtl: Use g-sercom__linux.adb for all linuxes.
4733
47342019-07-08  Yannick Moy  <moy@adacore.com>
4735
4736	* expander.adb (Expand): Do not reset Analyzed flag always.
4737	* sem_eval.adb (Fold_Ureal): Mark node as analyzed.
4738
47392019-07-08  Ed Schonberg  <schonberg@adacore.com>
4740
4741	* exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice
4742	the assignment statement that computes the delay value, to
4743	prevent improper tree sharing when the value is a type
4744	conversion and Float_Overflow checks are enabled.
4745
47462019-07-08  Hristian Kirtchev  <kirtchev@adacore.com>
4747
4748	* bindo.adb: Update the section on terminology to include new
4749	concepts.  Update the section on switches to include new
4750	entries.
4751	* bindo.ads: Add type Precedence_Kind.
4752	* bindo-builders.adb: Add with and use clauses for Debug and
4753	Bindo.Validators.  Add use clauses for
4754	Bindo.Validators.Invocation_Graph_Validators and
4755	Bindo.Validators.Library_Graph_Validators.
4756	(Build_Invocation_Graph): Validate the graph immediately after
4757	it was built.
4758	(Build_Library_Graph): Update the parameter profile. The
4759	creation of the graph is now elaboration model-agnostic.
4760	Validate the graph immediately after it was built.
4761	(Create_With_Edge): Create regular with edges for Elaborate and
4762	Elaborate_All edges when the appropriate debug switches are in
4763	effect.
4764	* bindo-builders.ads (Build_Library_Graph): Update the parameter
4765	profile.
4766	* bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of
4767	an Elaborate_All edge throughout the inspection of the cycle's
4768	edges.
4769	(Output_Dynamic_Model_Suggestions): Output the suggestion only
4770	when the cycle contains at least one weak edge where the
4771	successor was statically elaborated.
4772	(Output_Elaborate_Body_Transition, Output_Forced_Transition,
4773	Output_With_Transition): Update the assertions.
4774	* bindo-elaborators.adb: Remove use clauses for
4775	Bindo.Validators.Invocation_Graph_Validators and
4776	Bindo.Validators.Library_Graph_Validators.  Remove strings
4777	Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg.
4778	Remove type String_Ptr.
4779	(Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set
4780	Create_Component_Candidates_Set): Remove.
4781	(Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine.
4782	(Elaborate_Component): Update the parameter profile and the
4783	comment on usage.  Reimplement the elaboration of a component.
4784	The algorithm will now attempt to elaborate as many vertices
4785	possible. If this is not possible, and a weakly elaborable
4786	vertex is available use unit was compiled using the dynamic
4787	model, the algorithm will elaborate it.
4788	(Elaborate_Library_Graph): Reimplement the elaboration of the
4789	graph. The algorithm will now attempt to elaborate as many
4790	vertices along with their components as possible. If this is not
4791	possible, and a weakly elaborable vertex is available use unit
4792	was compiled using the dynamic model, the algorithm will
4793	elaborate it along with its component.
4794	(Elaborate_Units): Merge with the functionality of
4795	Elaborate_Units_Common.
4796	(Elaborate_Units_Common, Elaborate_Units_Dynamic,
4797	Elaborate_Units_Static): Remove.
4798	(Elaborate_Vertex): Update the parameter profile and the comment
4799	on usage.  Reimplemented.
4800	(Find_Best_Candidate): Remove.
4801	(Find_Best_Elaborable_Vertex, Find_Best_Vertex,
4802	Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body,
4803	Insert_Elaborable_Successor, Insert_Vertex): New routines.
4804	(Is_Better_Candidate): Remove.
4805	(Is_Better_Elaborable_Vertex,
4806	Is_Better_Weakly_Elaborable_Vertex,
4807	Is_Suitable_Elaborable_Vertex,
4808	Is_Suitable_Weakly_Elaborable_Vertex): New routines.
4809	(Trace_Candidate_Vertices): Remove.
4810	(Trace_Component): Output the number of strong and weak
4811	predecessors.
4812	(Trace_Unelaborated_Vertices): Remove.
4813	(Trace_Vertex): Output the number of strong and weak
4814	predecessors.
4815	(Trace_Vertices): New routine.
4816	(Update_Successor, Update_Successors): Update the parameter
4817	profile and the comment on usage.
4818	* bindo-graphs.adb: Remove type Precedence_Kind.
4819	(Add_Edge_With_Return): Update the increment of pending
4820	predecessors.
4821	(Add_Vertex): Provide default values for strong and weak
4822	predecessors.
4823	(Complementary_Vertex): Move the initial declaration to the
4824	spec. Update the parameter profile and the comment on usage.
4825	(Contains_Weak_Static_Successor): New routine.
4826	(Create): Update the parameter profile. The creation of the
4827	graph is now elaboration model-agnostic.
4828	(Decrement_Pending_Predecessors): Update the parameter profile
4829	and the comment on usage. Reimplemented.
4830	(Delete_Edge): Update the decrement of pending predecesors.
4831	(Has_Elaborate_Body): Do not treat a vertex as being subject to
4832	Elaborate_Body when a debug switch is in effect.
4833	(Increment_Pending_Predecessors): Update the parameter profile
4834	and the comment on usage. Reimplemented.
4835	(Is_Elaborable_Component): Reimplemented.
4836	(Is_Elaborable_Vertex): Move the initial declaration to the
4837	spec.  Reimplemented.
4838	(Is_Elaborate_Body_Pair): New routine.
4839	(Is_Dynamically_Elaborated): Update the parameter profile.
4840	Reimplemented.
4841	(Is_Weakly_Elaborable_Vertex): New routine.
4842	(Pending_Predecessors): Removed.
4843	(Pending_Predecessors_For_Elaboration,
4844	Pending_Strong_Predecessors, Pending_Weak_Predecessors,
4845	Update_Pending_Predecessors): New routines.
4846	(Update_Pending_Predecessors_Of_Components): Update the
4847	increment of pending predecessors.
4848	* bindo-graphs.ads: Update the components of type
4849	Component_Attributes.  Update the components of type
4850	Library_Graph_Attributes.  Update the components of type
4851	Library_Graph_Vertex_Attributes.  Update the initialization of
4852	No_Component_Attributes.  Update the initialization of
4853	No_Library_Graph_Vertex_Attributes.
4854	(Complementary_Vertex, Contains_Weak_Static_Successor): New
4855	routines.
4856	(Create): Update the parameter profile and the comment on usage.
4857	(Decrement_Pending_Predecessors, Is_Dynamically_Elaborated):
4858	Update the parameter profile and the comment on usage.
4859	(Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New
4860	routines.
4861	(Pending_Predecessors): Removed.
4862	(Pending_Predecessors_For_Elaboration,
4863	Pending_Strong_Predecessors, Pending_Weak_Predecessors): New
4864	routines.
4865	* bindo-writers.adb (Write_Components): Moved from the spec.
4866	(Write_Component): Output the strong and weak predecessors.
4867	(Write_Library_Graph): Output the components as part of the
4868	graph.
4869	(Write_Library_Graph_Vertex): Output the strong and weak
4870	predecessors.
4871	* bindo-writers.ads (Write_Components): Moved to the body.
4872	* debug.adb: Add and document new GNATbind switches -d_a, -d_b,
4873	-d_e.
4874	* bindo-validators.adb: Minor reformattings.
4875
48762019-07-08  Bob Duff  <duff@adacore.com>
4877
4878	* libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate):
4879	Support additional data rates.
4880
48812019-07-08  Olivier Hainque  <hainque@adacore.com>
4882
4883	* gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request
4884	DECL_ARTIFICIAL_P on elab proc declarations.
4885
48862019-07-08  Eric Botcazou  <ebotcazou@adacore.com>
4887
4888	* repinfo.adb (List_Record_Info): Declare Incomplete_Layout and
4889	Not_In_Extended_Main local exceptions.
4890	(List_Structural_Record_Layout): For an extension, raise the
4891	former if the parent subtype has not been built and the latter
4892	if it is not declared in the main source unit.  Fall back to the
4893	flat layout if either exception has been raised.
4894
48952019-07-08  Ed Schonberg  <schonberg@adacore.com>
4896
4897	* libgnat/a-strfix.adb (Delete): The RM describes the semantics
4898	of Delete as equivalent to that of Replace_String with a null
4899	argument. As a result, deleting a null string that starts past
4900	the end of its argument is a noop and must not raise
4901	Index_Error.
4902
49032019-07-08  Javier Miranda  <miranda@adacore.com>
4904
4905	* exp_disp.adb (Register_Primitive): When registering a
4906	primitive in the secondary dispatch table, handle primitive
4907	inherited through several levels of type derivation (required to
4908	properly handle inherited 'null' primitive).
4909
49102019-07-08  Bob Duff  <duff@adacore.com>
4911
4912	* doc/gnat_ugn/gnat_utility_programs.rst: Document handling of
4913	preprocessor directives in GNATpp.
4914
49152019-07-08  Javier Miranda  <miranda@adacore.com>
4916
4917	* gnat1drv.adb (Post_Compilation_Validation_Checks:
4918	Validate_Compile_Time_Warning_Errors is now located in sem_prag
4919	(instead of sem_ch13).
4920	* sem_ch13.ads (Validate_Compile_Time_Warning_Error,
4921	Validate_Compile_Time_Warning_Errors): Move to sem_prag.
4922	* sem_ch13.adb
4923	(Compile_Time_Warnings_Errors): Move to sem_prag.
4924	(Initialize): Remove initialization of table
4925	Compile_Time_Warning_Errors.
4926	(Validate_Compile_Time_Warning_Error,
4927	Validate_Compile_Time_Warning_Errors): Move to sem_prag.
4928	* sem_prag.ads (Validate_Compile_Time_Warning_Errors): New
4929	procedure.
4930	* sem_prag.adb (Initialize): Initialize table
4931	Compile_Time_Warning_Errors.
4932
49332019-07-08  Ed Schonberg  <schonberg@adacore.com>
4934
4935	* sem_ch13.adb (Analyze_Aspect_Specifications): For a
4936	pre/postcondition of a generic subprogram declaration, do not
4937	use Relocate_Node on the aspect expression to construct the
4938	corresponding attribute specification, to prevent tree anomalies
4939	when the expression is a call with named actual parameters.
4940
49412019-07-08  Javier Miranda  <miranda@adacore.com>
4942
4943	* sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas
4944	used to report user defined compile time warning or errors
4945	handle 'Size for types with known static RM size.
4946
49472019-07-08  Justin Squirek  <squirek@adacore.com>
4948
4949	* exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for
4950	the building of image tables.
4951	(Expand_Image_Attribute): Minor cleanup.
4952
49532019-07-08  Dmitriy Anisimkov  <anisimko@adacore.com>
4954
4955	* libgnat/g-socket.ads, libgnat/g-socket.adb: Improve
4956	documentation.
4957	(Get_Socket_Option, Set_Socket_Option): Remove default value for
4958	the Level formal.
4959
49602019-07-08  Ed Schonberg  <schonberg@adacore.com>
4961
4962	* sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an
4963	unanalized aspect in a generic context that has not been
4964	analyzed yet, if the aspect applies to a type, place the type on
4965	the scope stack to make its components visible, before checking
4966	conformance with the version of the expression analyzed at the
4967	freeze point.
4968
49692019-07-05  Justin Squirek  <squirek@adacore.com>
4970
4971	* checks.adb (Apply_Accessibility_Check): Add logic to fetch the
4972	function result accessibility level if one is required within
4973	the generated check.
4974	* exp_ch6.adb (Needs_Result_Accessibility_Level): Modify
4975	controlling elsif block to handle more cases such as anonymous
4976	access results and disable checking for coextensions.
4977
49782019-07-05  Ed Schonberg  <schonberg@adacore.com>
4979
4980	* sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal
4981	accept statement for an enclosing entry abandon analysis to
4982	prevent scope mismatches and potential infinite loops in
4983	compiler.
4984
49852019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
4986
4987	* ali.adb (For_Each_Invocation_Construct,
4988	For_Each_Invocation_Relation): New version.
4989	(Scan_ALI): Initialize field Invocation_Graph_Encoding.
4990	(Set_Invocation_Graph_Encoding): Update the setting of the
4991	invocation graph encoding.
4992	* ali.ads: Move field Invocation_Graph_Encoding from Unit_Record
4993	to ALI_Record because the encoding applies to the whole ALI,
4994	rather than one of the units (spec or body) for which the ALI
4995	file was created.
4996	(For_Each_Invocation_Construct, For_Each_Invocation_Relation):
4997	New version.
4998	* bindo.adb: Update the section on switches.  Complete the
4999	section of debugging elaboration order issues.
5000	(Find_Elaboration_Order): Prepare the routine for the switch
5001	from the old to the new elaboration order mechanism.
5002	* bindo-diagnostics.adb (Find_And_Output_Invocation_Paths):
5003	Manage a visited set used by Visit_Vertex.
5004	(Output_All_Cycles_Suggestions,
5005	Output_Dynamic_Model_Suggestions): Clarify the nature of the
5006	suggested switch.
5007	(Output_Elaborate_Body_Transition): Update the diagnostic to
5008	emit a better message.
5009	(Output_Forced_Suggestions, Output_Full_Encoding_Suggestions):
5010	Clarify the nature of the suggested switch.
5011	(Visit_Vertex): Update the parameter profile to add a set of
5012	invokers visited during the transition. This set prevents
5013	infinite exploration of the graph in case the invocations are
5014	recursive.
5015	* bindo-elaborators.adb: Add a use clause for
5016	Bindo.Writers.Dependency_Writers.
5017	(Elaborate_Units_Common): Output the library graph after it has
5018	been augmented with invocation edges. Output just the components
5019	instead of outputting the whole library graph again.
5020	(Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the
5021	dependencies as expressed in the library graph.
5022	* bindo-units.adb (Invocation_Graph_Encoding): Update the
5023	extraction of the invocation graph encoding.
5024	* bindo-writers.adb: Add with and use clauses for Binderr and
5025	Butil.
5026	(palgc, plgc): New debug routine.
5027	(Write_Components): Moved to the spec. Add a header for the
5028	output.
5029	(Write_Dependencies, Write_Dependencies_Of_Vertex,
5030	Write_Dependency_Edge): New routine.
5031	(Write_Elaboration_Order): Update the logic to follow the format
5032	of Binde's order output.
5033	(Write_Library_Graph): Do not output the components every time
5034	the graph is written.
5035	(Write_Unit): Output the invocation graph encoding of the unit.
5036	Output the invocation constructs and relations for the unit
5037	only.
5038	* bindo-writers.ads (Write_Components): Moved from the body.
5039	(Write_Dependencies): New routine.
5040	* bindusg.adb: Prepare the routine for the switch from the old
5041	to the new elaboration order mechanism.
5042	* debug.adb: Binder switch -d_O is now not associated with any
5043	functionality.
5044	* einfo.adb (Is_Elaboration_Target): The attribute applies to
5045	packages, as specified by the comment on the attribute usage.
5046	* opt.ads: Add a global flag which controls the choice between
5047	the new and the legacy elaboration order mechanism.
5048	* sem_elab.adb: Add Package_Target to type Target_Kind.
5049	(Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure,
5050	Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios,
5051	Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the
5052	entity of the main unit.
5053	(Create_Package_Rep): New routine.
5054	(Create_Target_Rep): Add processing for packages.
5055	(Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use
5056	Main_Unit_Entity to obtain the entity of the main
5057	 unit.
5058	(Invocation_Graph_Recording_OK): Prepare the routine for the
5059	switch from the old to the new elaboration order mechanism.
5060	(Main_Unit_Entity): New routine.
5061	(Meet_Elaboration_Requirement,
5062	Process_Conditional_ABE_Variable_Reference): Use
5063	Main_Unit_Entity to obtain the entity of the main unit.
5064	(Process_Invocation_Instantiation): New routine.
5065	(Process_Invocation_Scenario): Add processing for
5066	instantiations.
5067	* switch-b.adb (Scan_Binder_Switches): Prepare the routine for
5068	the switch from the old to the new elaboration order mechanism.
5069
50702019-07-05  Joffrey Huguet  <huguet@adacore.com>
5071
5072	* libgnat/a-textio.adb: Add abstract state refinment.
5073	* libgnat/a-textio.ads: Add File_System abstract state.  Add
5074	global contracts, contract cases, preconditions and
5075	postconditions to procedures and functions.
5076	(Set_Input, Set_Output, Set_Error, Standard_Input,
5077	Standard_Output, Standard_Error, Current_Input, Current_Output,
5078	Current_Error): Turn SPARK_Mode off.
5079	(Get_Line): Turn SPARK_Mode off on Get_Line functions.
5080	* libgnat/a-tideio.ads, libgnat/a-tienio.ads,
5081	libgnat/a-tifiio.ads, libgnat/a-tiflio.ads,
5082	libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global
5083	contracts, contract cases, preconditions and postconditions to
5084	procedures and functions.
5085
50862019-07-05  Arnaud Charlet  <charlet@adacore.com>
5087
5088	* doc/gnat_ugn/platform_specific_information.rst: Refresh doc on
5089	installing from the command line on Windows.  Remove obsolete
5090	part.
5091	* gnat_ugn.texi: Regenerate.
5092
50932019-07-05  Vasiliy Fofanov  <fofanov@adacore.com>
5094
5095	* libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with
5096	the correct one.  Also capitalize references to False
5097	throughout.
5098
50992019-07-05  Eric Botcazou  <ebotcazou@adacore.com>
5100
5101	* exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual
5102	parameters of function calls here either.
5103
51042019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
5105
5106	* bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb,
5107	exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb,
5108	libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads,
5109	sem_util.adb: Minor reformatting.
5110
51112019-07-05  Ed Schonberg  <schonberg@adacore.com>
5112
5113	* sem_ch13.adb (Build_Predicate_Functions): If a subtype that
5114	carries a static predicate aspect is frozen immediately after
5115	its declaration, ensure that the generated function body created
5116	for predicate checking is inserted after the corresponding
5117	subprogram declaration, which is created at the point the
5118	declaration is elaborated.
5119
51202019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
5121
5122	* exp_ch7.adb (Cleanup_Record): Use the underlying type when
5123	checking for components with tasks.
5124
51252019-07-05  Arnaud Charlet  <charlet@adacore.com>
5126
5127	* libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread.
5128
51292019-07-05  Ed Schonberg  <schonberg@adacore.com>
5130
5131	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit
5132	range checks when the index type of the bit-packed array is an
5133	enumeration type with a non-standard representation,
5134
51352019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
5136
5137	* sem_res.adb (Is_Control_Flow_Statement): Delay statements
5138	contain an expression, which in turn may have side effects and
5139	affect the infinite recursion. As a result, delay statements
5140	should not be treated specially.
5141
51422019-07-05  Arnaud Charlet  <charlet@adacore.com>
5143
5144	* libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads,
5145	libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads,
5146	libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads,
5147	libgnarl/s-linux__sparc.ads: Fix typos in comments.
5148
51492019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
5150
5151	* sem_res.adb (Check_Infinite_Recursion): Reimplemented.
5152	(Enclosing_Declaration_Or_Statement,
5153	Invoked_With_Different_Arguments, Is_Conditional_Statement,
5154	Is_Control_Flow_Statement, Is_Immediately_Within_Body,
5155	Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement,
5156	Preceded_By_Control_Flow_Statement,
5157	Within_Conditional_Statement): New routines.
5158
51592019-07-05  Javier Miranda  <miranda@adacore.com>
5160
5161	* exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an
5162	accessibility check when the conversion is an access to
5163	class-wide interface type and it is an actual parameter.
5164	* exp_ch6.adb (Expand_Call_Helper): Add documentation on the
5165	accessibility level of an anonymous allocator defining the value
5166	of an access parameter.
5167	* sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add
5168	support for an anonymous allocator whose type is that of a
5169	stand-alone object of an anonymous access to object type.
5170
51712019-07-05  Piotr Trojanek  <trojanek@adacore.com>
5172
5173	* einfo.ads, sem_res.adb: Typo fixes in comments.
5174
51752019-07-05  Bob Duff  <duff@adacore.com>
5176
5177	* exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for
5178	Has_Foreign_Convention to the imported case only.  If a
5179	build-in-place function is exported, and called from Ada code,
5180	build-in-place protocols should be used.
5181
51822019-07-05  Ed Schonberg  <schonberg@adacore.com>
5183
5184	* sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope
5185	is a loop, continue climbing the scope stack to find the
5186	enclosing subprogram.
5187	(Gather_Components): Handle properly a choice in a record
5188	aggregate that is given by a subtype with a static predicate.
5189
51902019-07-05  Javier Miranda  <miranda@adacore.com>
5191
5192	* debug.adb (-gnatd.K): Leave available this switch.
5193	* contracts.adb (Build_And_Analyze_Contract_Only_Subprograms):
5194	Remove.
5195	* scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag,
5196	Contract_Only_Body_Nodes, Get_Contract_Only_Body,
5197	Is_Contract_Only_Body, Set_Contract_Only_Body): Remove.
5198
51992019-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>
5200
5201	* libgnat/a-strunb.ads: Import documentation from the RM
5202
52032019-07-05  Pierre-Marie de Rodat  <derodat@adacore.com>
5204
5205	* libgnat/a-strfix.ads: Import documentation from the RM
5206
52072019-07-05  Yannick Moy  <moy@adacore.com>
5208
5209	* adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast
5210	switches.
5211
52122019-07-05  Hristian Kirtchev  <kirtchev@adacore.com>
5213
5214	* ali.adb: Relocate types Invocation_Construct_Record,
5215	Invocation_Relation_Record, and Invocation_Signature_Record to
5216	the body of ALI.  Relocate tables Invocation_Constructs,
5217	Invocation_Relations, and Invocation_Signatures to the body of
5218	ALI.  Remove type Body_Placement_Codes.  Add new types
5219	Declaration_Placement_Codes, and
5220	Invocation_Graph_Encoding_Codes.  Update the literals of type
5221	Invocation_Graph_Line_Codes.
5222	(Add_Invocation_Construct): Update the parameter profile. Add an
5223	invocation construct built from all attributes provided.
5224	(Add_Invocation_Relation): Update the parameter profile. Add an
5225	invocation relation built from all attributes provided.
5226	(Body_Placement): New routine.
5227	(Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
5228	Removed.
5229	(Code_To_Declaration_Placement_Kind,
5230	Code_To_Invocation_Graph_Encoding_Kind, Column,
5231	Declaration_Placement_Kind_To_Code, Extra,
5232	For_Each_Invocation_Construct, For_Each_Invocation_Relation,
5233	Invocation_Graph_Encoding,
5234	Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
5235	Locations, Name): New routine.
5236	(Scan_Invocation_Construct_Line): Reimplement the scanning
5237	mechanism.
5238	(Scan_Invocation_Graph_Attributes_Line): New routine.
5239	(Scan_Invocation_Graph_Line): Use a case statement to dispatch.
5240	(Scan_Invocation_Relation_Line): Reimplement the scanning
5241	mechanism.
5242	(Scope): New routine.
5243	(Set_Invocation_Graph_Encoding, Signature, Spec_Placement,
5244	Target): New routine.
5245	* ali.ads: Add new type Invocation_Graph_Encoding_Kind.  Add
5246	component Invocation_Graph_Encoding to type Unit_Record.
5247	Relocate various types and data structures to the body of ALI.
5248	(Add_Invocation_Construct, Add_Invocation_Relation): Update the
5249	parameter profile.
5250	(Body_Placement): New routine.
5251	(Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind):
5252	Removed.
5253	(Code_To_Declaration_Placement_Kind,
5254	Code_To_Invocation_Graph_Encoding_Kind, Column,
5255	Declaration_Placement_Kind_To_Code, Extra,
5256	For_Each_Invocation_Construct, For_Each_Invocation_Relation,
5257	Invocation_Graph_Encoding,
5258	Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line,
5259	Locations, Name, Scope, Set_Invocation_Graph_Encoding,
5260	Signature, Spec_Placement, Target): New routine.
5261	* bindo.adb: Add with clause for Binde.  Add with and use
5262	clauses for Debug.  Update the documentation.  Add new switches.
5263	(Find_Elaboration_Order): Dispatch to the proper elaboration
5264	mechanism.
5265	* bindo-augmentors.adb:
5266	Remove with and use clauses for GNAT and GNAT.Sets.  Remove
5267	membership set VS.  Update the parameter profiles of most
5268	routines to use better parameter names.  Update the
5269	implementation of most routine to use the new parameter names.
5270	Remove various redundant assertions.
5271	* bindo-builders.adb: Use better names for instantiated data
5272	structures. Update all references to these names.  Update the
5273	parameter profiles of most routines to use better parameter
5274	names.  Update the implementation of most routine to use the new
5275	parameter names.
5276	(Build_Library_Graph): Update the parameter profile. Update the
5277	call to Create.
5278	(Create_Vertex): Reimplemented.
5279	(Declaration_Placement_Vertex): New routine.
5280	* bindo-builders.ads (Build_Library_Graph): Update the parameter
5281	profile and comment on usage.
5282	* bindo-diagnostics.adb: Almost a new unit.
5283	* bindo-diagnostics.ads: Add a use clause for
5284	Bindo.Graphs.Invocation_Graphs.  Remove package
5285	Cycle_Diagnostics.
5286	(Diagnose_Circularities): New routine.
5287	* bindo-elaborators.adb: Remove the with and use clauses for
5288	Binderr and GNAT.Sets.  Remove the use clause for
5289	Bindo.Diagnostics.Cycle_Diagnostics.  Remove membership set VS.
5290	Update the parameter profiles of most routines to use better
5291	parameter names.  Update the implementation of most routine to
5292	use the new parameter names.  (Elaborate_Units_Common): Update
5293	the parameter profile. Pass an infication to the library graph
5294	builder whether the dynamic model is in effect.
5295	(Elaborate_Units_Dynamic, Elaborate_Units_Static): Use
5296	Diagnose_Circularities to provide diagnostics.
5297	(Update_Successor): Use routine In_Same_Component to determine
5298	whether the predecessor and successor reside in different
5299	components.
5300	* bindo-graphs.adb: Add with and use clauses for Butil, Debug,
5301	Output, and Bindo.Writers.  Remove with and use clauses for
5302	GNAT.Lists.  Update the parameter profiles of most routines to
5303	use better parameter names.  Update the implementation of most
5304	routine to use the new parameter names.  Remove various
5305	redundant assertions.  Remove doubly linked list EL.  Add new
5306	type Precedence_Kind.
5307	(Add_Cycle): New routine.
5308	(Add_Vertex): Update the parameter profile. Update the creation
5309	of vertex attributes.
5310	(Add_Vertex_And_Complement, Body_Vertex, Column,
5311	Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New
5312	routines.
5313	(Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle,
5314	Destroy_Library_Graph_Edge, Extra, File_Name,
5315	Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge,
5316	Find_Cycles, Find_First_Lower_Precedence_Cycle,
5317	Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle,
5318	Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
5319	Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort,
5320	Invocation_Edge_Count, Invocation_Graph_Encoding,
5321	Is_Cycle_Initiating_Edge, Is_Cyclic_Edge,
5322	Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge,
5323	Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge,
5324	Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge,
5325	Is_Dynamically_Elaborated, Is_Elaborate_All_Edge,
5326	Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines.
5327	(Is_Existing_Predecessor_Successor_Relation): Removed.
5328	(Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle,
5329	Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind,
5330	Length): New routine.
5331	(Lib_Vertex): Removed.
5332	(Line, Links_Vertices_In_Same_Component,
5333	Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle,
5334	Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence,
5335	Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines.
5336	(Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge.
5337	(Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex.
5338	(Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge.
5339	(Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex.
5340	(Set_Is_Existing_Predecessor_Successor_Relation): Removed.
5341	(Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge,
5342	Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge,
5343	Trace_Eol, Trace_Vertex): New routines.
5344	* bindo-graphs.ads: Add with and use clauses for Types and
5345	GNAT.Lists.  Update the parameter profiles of most routines to
5346	use better parameter names.  Update the implementation of most
5347	routine to use the new parameter names.  Add the new
5348	instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists,
5349	LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets.  Add new type
5350	Library_Graph_Cycle_Id along with an empty and initial value.
5351	Remove component Lib_Vertex and add new components Body_Vertex
5352	and Spec_Vertex to type Invocation_Graph_Vertex_Attributes.  Add
5353	new type Library_Graph_Cycle_Kind.  Add new iterators
5354	All_Cycle_Iterator and Edges_Of_Cycle_Iterator.  Add new type
5355	Library_Graph_Cycle_Attributes.  Add new components
5356	Cycle_Attributes, Cycles, and Dynamically_Elaborated to type
5357	Library_Graph_Attributes.
5358	(Body_Vertex, Column, Destroy_Invocation_Graph_Edge,
5359	Destroy_Library_Graph_Cycle_Attributes,
5360	Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles,
5361	Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle,
5362	Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle,
5363	In_Same_Component, Invocation_Edge_Count,
5364	Invocation_Graph_Encoding, Is_Dynamically_Elaborated,
5365	Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge,
5366	Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge,
5367	Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind):
5368	New routines.
5369	(Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present,
5370	Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines.
5371	* bindo-units.adb (File_Name, Invocation_Graph_Encoding): New
5372	routines.
5373	* bindo-units.ads: Add new instantiated data structure
5374	Unit_Sets.
5375	(File_Name, Invocation_Graph_Encoding): New routine.
5376	* bindo-validators.adb: Remove with and use clauses for GNAT and
5377	GNAT.Sets.  Remove membership set US.  Update the parameter
5378	profiles of most routines to use better parameter names.  Update
5379	the implementation of most routine to use the new parameter
5380	names.
5381	(Validate_Cycle, Validate_Cycle_Path, Validate_Cycles,
5382	Validate_Invocation_Graph_Vertex): Remove the validation of
5383	component Lib_Vertex. Add the validation of components
5384	Body_Vertex and Spec_Vertex.
5385	(Write_Error): New routine.
5386	* bindo-validators.ads (Validate_Cycles): New routine.
5387	* bindo-writers.adb: Update the parameter profiles of most
5388	routines to use better parameter names.  Update the
5389	implementation of most routine to use the new parameter names.
5390	(Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines.
5391	(Write_Invocation_Graph_Vertex): Remove the output of component
5392	Lib_Vertex. Add the output of components Body_Vertex and
5393	Spec_Vertex.
5394	* bindo-writers.ads (Write_Cycles): New routine.
5395	* debug.adb: Use binder switches -d_C and -d_P, add
5396	documentation on their usage.
5397	* gnatbind.adb: Remove with and use clauses for Binde.  Delegate
5398	the choice of elaboration mechanism to Bindo.
5399	* lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations,
5400	Name, Placement, Scope, Signature, Target): Removed.
5401	(Write_Invocation_Graph): Moved at the top level.
5402	(Write_Invocation_Graph_Attributes): New routine.
5403	(Write_Invocation_Relation, Write_Invocation_Signature): Moved
5404	at the top level.
5405	* lib-writ.ads: Add a documentation section on invocation graph
5406	attributes.
5407	* sem_elab.adb (Body_Placement_Of): New routine.
5408	(Declare_Invocation_Construct): Update the call to
5409	Add_Invocation_Construct.
5410	(Declaration_Placement_Of_Node): New routine.
5411	(Get_Invocation_Attributes): Correct the retrieval of the
5412	enclosing subprogram where the postcondition procedure lives.
5413	(Placement_Of, Placement_Of_Node): Removed.
5414	(Record_Invocation_Graph): Record the encoding format used.
5415	(Record_Invocation_Graph_Encoding): New routine.
5416	(Record_Invocation_Relation): Update the call to
5417	Add_Invocation_Relation.
5418	(Spec_Placement_Of): Removed.
5419	* libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine.
5420
54212019-07-05  Ed Schonberg  <schonberg@adacore.com>
5422
5423	* checks.adb (Apply_Predicate_Check): Except within the
5424	subprogram body that defines the formal, do not apply predicate
5425	check on a formal IN parameter: such a check is redundant and
5426	its expansion can lead to out-of-scope references when it is
5427	originates in a function call in a precondition,
5428
54292019-07-05  Yannick Moy  <moy@adacore.com>
5430
5431	* sem_res.adb (Resolve_Call): Cannot inline in quantified
5432	expressions.
5433	* sem_util.adb, sem_util.ads (In_Quantified_Expression): New
5434	function.
5435
54362019-07-05  Bob Duff  <duff@adacore.com>
5437
5438	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
5439	Fix typo.
5440	* gnat_rm.texi: Regenerate.
5441
54422019-07-05  Bob Duff  <duff@adacore.com>
5443
5444	* exp_attr.adb (Input): Take the No_Stream_Optimizations
5445	restriction into account.
5446
54472019-07-05  Claire Dross  <dross@adacore.com>
5448
5449	* libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal
5450	vectors are now always bounded so that they do not need to be
5451	limited anymore.
5452
54532019-07-05  Dmitriy Anisimkov  <anisimko@adacore.com>
5454
5455	* libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New
5456	function.
5457
54582019-07-04  James Clarke  <jrtc27@debian.org>
5459
5460	* libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type
5461	definition public.
5462	(CLOCK_REALTIME): Make value public.
5463
54642019-07-04  Javier Miranda  <miranda@adacore.com>
5465
5466	* exp_tss.adb (Init_Proc): Adding missing support for access to
5467	subprograms and access to protected subprograms of non-default
5468	C++ constructors.
5469
54702019-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5471
5472	* gnat1drv.adb (Adjust_Global_Switches): Use proper interface to
5473	set the validity settings in CodePeer mode.
5474	* par-load.adb (Load): Remove all code dealing with validity
5475	settings.
5476	* validsw.ads (Validity_Check_Copies): Alphabetize.
5477	* validsw.adb (Reset_Validity_Check_Options): Set all options to
5478	off.
5479	(Save_Validity_Check_Options): Save all options.
5480
54812019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
5482
5483	* exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb,
5484	exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb,
5485	rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb,
5486	sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor
5487	reformatting.
5488
54892019-07-04  Joffrey Huguet  <huguet@adacore.com>
5490
5491	* libgnarl/a-taside.ads: Add assertion policy to ignore
5492	preconditions.
5493	(Abort_Task, Is_Terminated, Is_Callable): Add preconditions.
5494
54952019-07-04  Eric Botcazou  <ebotcazou@adacore.com>
5496
5497	* doc/gnat_rm/implementation_defined_pragmas.rst: Fix
5498	capitalization and parenthesis glitches.
5499	* gnat_rm.texi: Regenerate.
5500
55012019-07-04  Ed Schonberg  <schonberg@adacore.com>
5502
5503	* sem_ch10.adb (Remove_Context_Clauses): Handle properly the
5504	removal of a limited_with_clause which appears in the library
5505	unit oF the main unit, when some other unit in the context has a
5506	regular with_clause on the same unit, to prevent spurious
5507	visibility errors in the subsequent analysis of pending instance
5508	bodies.
5509
55102019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
5511
5512	* sem_elab.adb: Add new type Elaboration_Phase_Status along with
5513	a global to keep track of the elaboration phase status.
5514	Initialize all internal data structures to Nil for services
5515	Elaborated_Units, Internal_Representation, and Scenario_Storage.
5516	(Build_Call_Marker): Do not create a call marker when the
5517	elaboration phase is not active.
5518	(Build_Variable_Reference_Marker): Do not create a call marker
5519	when the elaboration phase is not active.
5520	(Check_Elaboration_Scenarios): Destroy all internal structures
5521	when the elaboration phase does not have to run. Do not execute
5522	when the elaboration phase is not active.
5523	(Elaboration_Phase_Active): New routine.
5524	(Finalize_All_Data_Structures): New routine.
5525	(Initialize): Initialize all internal data structures and signal
5526	that the elaboration phase has started.
5527	(Initialize_All_Data_Structures): New routine.
5528	(Initialize_Elaborated_Units): Initialize all internal data
5529	structures.
5530	(Initialize_Internal_Representation): Initialize all internal
5531	data structures.
5532	(Initialize_Scenario_Storage): Initialize all internal data
5533	structures.
5534	(Kill_Elaboration_Scenario): Do not execute when the elaboration
5535	phase is not active.
5536	(Set_Elaboration_Phase): New routine.
5537	(Update_Elaboration_Scenario): Do not execute when the
5538	elaboration phase is not active.
5539
55402019-07-04  Gary Dismukes  <dismukes@adacore.com>
5541
5542	* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special
5543	treatment of calling Mask_Unfrozen_Types must also be done in
5544	the case of an Ignored_Ghost_Entity, because Expander_Active is
5545	False in that case.
5546
55472019-07-04  Yannick Moy  <moy@adacore.com>
5548
5549	* sem_prag.adb (Check_Library_Level_Entity): Update for new rule
5550	on SPARK_Mode.
5551
55522019-07-04  Justin Squirek  <squirek@adacore.com>
5553
5554	* sem_disp.adb (Check_Controlling_Formals): Obtain the full view
5555	before type comparison.
5556
55572019-07-04  Ed Schonberg  <schonberg@adacore.com>
5558
5559	* exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible
5560	subprogram, extracted from Expand_Composite_Equality, to handle
5561	properly the composition of equality for variant record types.
5562	* exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each
5563	component, to handle properly the case of a component with a
5564	user-defined equality. Revert to predefined equality if the
5565	user-defined operation is abstract, to maintain compatibility
5566	with older versions,
5567
55682019-07-04  Justin Squirek  <squirek@adacore.com>
5569
5570	* exp_ch3.adb (Build_Initialization_Call): Fixup
5571	*_skip_null_excluding_check argument to handle new default.
5572	(Init_Formals): Make *_skip_null_excluding_check formal default
5573	to False
5574	* exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy
5575	code duplication
5576
55772019-07-04  Bob Duff  <duff@adacore.com>
5578
5579	* sem_ch3.adb (Access_Definition): Do not create a master unless
5580	Tasking_Allowed. Otherwise, this fails on restricted runtimes.
5581
55822019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
5583
5584	* sem_util.adb (Propagate_DIC_Attributes): Do not propagate the
5585	Default_Initial_Condition attributes to an incomplete type.
5586
55872019-07-04  Ed Schonberg  <schonberg@adacore.com>
5588
5589	* sem_attr.adb (Check_Array_Type): An array type attribute such
5590	as 'First can be applied to an unconstrained array tyope when
5591	the attribute reference appears within an aspect specification
5592	and the prefix is a current instance, given that the prefix of
5593	the attribute will become a formal of the subprogram that
5594	implements the aspect (typically a predicate check).
5595
55962019-07-04  Piotr Trojanek  <trojanek@adacore.com>
5597
5598	* sem_util.adb (Yields_Synchronized_Object): Fix typos in
5599	comments.
5600
56012019-07-04  Yannick Moy  <moy@adacore.com>
5602
5603	* sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK
5604	rule.
5605
56062019-07-04  Yannick Moy  <moy@adacore.com>
5607
5608	* sem_spark.adb (Check_Statement): Only check permission of
5609	object in extended return when it is of a deep type.
5610
56112019-07-04  Justin Squirek  <squirek@adacore.com>
5612
5613	* sem_ch12.adb (Perform_Appropriate_Analysis): Added for
5614	selecting which type of analysis based on wheither the
5615	instantiation is a generic at the library-level. In which case
5616	expansion during analysis.
5617	(Preanalyze_Actuals): Modify calls to Analyze to use the new
5618	routine.
5619
56202019-07-04  Ed Schonberg  <schonberg@adacore.com>
5621
5622	* exp_unst.adb: Handle conditional expressions.
5623
56242019-07-04  Yannick Moy  <moy@adacore.com>
5625
5626	* sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only
5627	analyze parts of the code marked in SPARK.
5628
56292019-07-04  Hristian Kirtchev  <kirtchev@adacore.com>
5630
5631	* erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb:
5632	Minor reformatting.
5633
56342019-07-04  Yannick Moy  <moy@adacore.com>
5635
5636	* sem_spark.adb (Explanation, Get_Expl): New functions to get
5637	the explanation for a permission mismatch.
5638	(Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take
5639	explanation into account for issuing a more precise error
5640	message.
5641	(Set_Perm_Prefixes, Set_Perm_Extensions,
5642	Set_Perm_Extensions_Move): Pass suitable argument for the
5643	explanation node.
5644
56452019-07-04  Arnaud Charlet  <charlet@adacore.com>
5646
5647	* exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add
5648	support for record aggregates.
5649	(Component_Check): Use Is_CCG_Supported_Aggregate instead of a
5650	similar local predicate.
5651	(Convert_To_Assignments): Take advantage of In_Place_Assign_OK
5652	predicate when possible.
5653	(Is_CCG_Supported_Aggregate): Return False for records with
5654	representation clauses and fix the logic for dealing with nested
5655	aggregates.
5656
56572019-07-04  Piotr Trojanek  <trojanek@adacore.com>
5658
5659	* opt.adb (Set_Config_Switches): Keep assertions policy as
5660	enabled when analysing internal units in GNATprove mode.
5661
56622019-07-04  Arnaud Charlet  <charlet@adacore.com>
5663
5664	* exp_ch4.adb (Expand_Short_Circuit_Operator): Strip
5665	N_Variable_Reference_Marker when checking for the presence of
5666	actions.
5667
56682019-07-04  Arnaud Charlet  <charlet@adacore.com>
5669
5670	* exp_aggr.adb (Check_Component): Take into account type
5671	conversions.
5672
56732019-07-04  Dmitriy Anisimkov  <anisimko@adacore.com>
5674
5675	* doc/gnat_ugn/platform_specific_information.rst: Document
5676	Windows socket timeout particularity.
5677	* gnat_ugn.texi: Regenerate.
5678	* gsocket.h: Include versionhelpers.h.
5679	* socket.c (__gnat_minus_500ms): New function.
5680	* libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New
5681	imported function.
5682	* libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove
5683	500ms from the requested timeout only on old Windows version.
5684
56852019-07-04  Thomas Quinot  <quinot@adacore.com>
5686
5687	* get_scos.adb: Remove bogus, dead code.
5688
56892019-07-04  Ed Schonberg  <schonberg@adacore.com>
5690
5691	* sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the
5692	component is an entity name, its dimensions are those of its
5693	type.
5694
56952019-07-03  Bob Duff  <duff@adacore.com>
5696
5697	* doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in
5698	GNATpp.
5699
57002019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>
5701
5702	* binde.adb: Remove with clause for System.OS_Lib.
5703	(Force_Elab_Order): Refactor the majority of the code in Butil.
5704	Use the new forced units iterator to obtain unit names.
5705	* bindo-builders.adb: Add with and use clauses for Binderr,
5706	Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables.  Add
5707	a hash table which maps units to line number in the forced
5708	elaboration order file.
5709	(Add_Unit): New routine.
5710	(Build_Library_Graph): Create forced edges between pairs of
5711	units listed in the forced elaboration order file.
5712	(Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number,
5713	Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info,
5714	Is_Duplicate_Unit, Missing_Unit_Info): New routines.
5715	* bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit):
5716	Refactor some of the behavior to Bindo-Units.
5717	* bindo-graphs.ads: Enable the enumeration literal for forced
5718	edges.
5719	* bindo-units.adb, bindo-units.ads (Is_Internal_Unit,
5720	Is_Predefined_Unit): New routines.
5721	* butil.adb: Add with and use clauses for Opt, GNAT, and
5722	System.OS_Lib.  Add with clause for Unchecked_Deallocation.
5723	(Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name,
5724	Read_Forced_Elab_Order_File): New routines.
5725	* butil.ads: Add with and use clauses for Types.  Add new
5726	iterator over the units listed in the forced elaboration order
5727	file.
5728	(Has_Next, Iterate_Forced_Units, Next): New routine.
5729	* namet.adb, namet.ads (Present): New routine.
5730
57312019-07-03  Bob Duff  <duff@adacore.com>
5732
5733	* sem_ch3.adb (Access_Definition): The code was creating a
5734	master in the case where the designated type is a class-wide
5735	interface type. Create a master in the noninterface case as
5736	well. That is, create a master for all limited class-wide types.
5737
57382019-07-03  Yannick Moy  <moy@adacore.com>
5739
5740	* erroutc.adb (Sloc_In_Range): New function to determine whether
5741	the range of a pragma Warnings covers a location, taking
5742	instantiations into account.
5743
57442019-07-03  Johannes Kanig  <kanig@adacore.com>
5745
5746	* osint.ads, osint.adb (Get_First_Main_File_Name): New routine
5747	to access the first file provided on the command line.
5748
57492019-07-03  Ed Schonberg  <schonberg@adacore.com>
5750
5751	* inline.adb (Process_Formals_In_Aspects): New procedure within
5752	Expand_Inlined_Call, to perform a replacement of references to
5753	formals that appear in aspect specifications within the body
5754	being inlined.
5755
57562019-07-03  Justin Squirek  <squirek@adacore.com>
5757
5758	* sem_ch8.adb (Analyze_Object_Renaming): Add call to search for
5759	the appropriate actual subtype of the object renaming being
5760	analyzed.
5761	(Check_Constrained_Object): Minor cleanup.
5762
57632019-07-03  Yannick Moy  <moy@adacore.com>
5764
5765	* sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to
5766	return go through traversal function call.
5767	(Check_Type): Consistently use underlying type.
5768	(Get_Perm): Adapt for case of elaboration code where variables
5769	are not declared in the environment. Remove incorrect handling
5770	of borrow and observe.
5771
57722019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>
5773
5774	* inline.adb (Build_Return_Object_Formal): New routine.
5775	(Can_Split_Unconstrained_Function): Code clean up.
5776	(Copy_Formals,Copy_Return_Object): New routines.
5777	(Split_Unconstrained_Function): Code clean up and refactoring.
5778
57792019-07-03  Gary Dismukes  <dismukes@adacore.com>
5780
5781	* bindo-augmentors.adb, bindo-augmentors.ads,
5782	bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb,
5783	sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial
5784	corrections and reformatting.
5785
57862019-07-03  Bob Duff  <duff@adacore.com>
5787
5788	* sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning
5789	if an Iterator_Specification is present.
5790
57912019-07-03  Bob Duff  <duff@adacore.com>
5792
5793	* doc/gnat_ugn/gnat_utility_programs.rst: Document default
5794	new-line behavior.
5795
57962019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>
5797
5798	* ali.adb: Add with and use clauses for GNAT,
5799	GNAT.Dynamic_HTables, and Snames.  Add a map from invocation
5800	signature records to invocation signature ids.  Add various
5801	encodings of invocation-related attributes.  Sort and update
5802	table Known_ALI_Lines.
5803	(Add_Invocation_Construct, Add_Invocation_Relation,
5804	Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
5805	Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
5806	Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New
5807	routines.
5808	(Initialize_ALI): Sort the initialization sequence. Add
5809	initialization for all invocation-related tables.
5810	(Invocation_Construct_Kind_To_Code,
5811	Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
5812	Invocation_Signature_Of, Present): New routines.
5813	(Scan_ALI): Add the default values for invocation-related ids.
5814	Scan invocation graph lines.
5815	(Scan_Invocation_Graph_Line): New routine.
5816	* ali.ads: Add with clause for GNAT.Dynamic_Tables.  Add types
5817	for invocation constructs, relations, and signatures.  Add
5818	tables for invocation constructs, relations, and signatures.
5819	Update Unit_Record to capture invocation-related ids.  Relocate
5820	table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array
5821	from Binde.
5822	(Add_Invocation_Construct, Add_Invocation_Relation,
5823	Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind,
5824	Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind,
5825	Code_To_Invocation_Graph_Line_Kind,
5826	Invocation_Construct_Kind_To_Code,
5827	Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code,
5828	Invocation_Signature_Of, Present): New routines.
5829	* binde.adb: Add with and use clause for Types.  Add use clause
5830	for ALI.Unit_Id_Tables;
5831	* binde.ads: Relocate table Unit_Id_Tables and subtypes
5832	Unit_Id_Table, Unit_Id_Array to ALI.
5833	* bindgen.adb: Remove with and use clause for ALI.
5834	* bindgen.ads: Remove with and use clause for Binde.  Add with
5835	and use clause for ALI.
5836	* bindo.adb,  bindo.ads, bindo-augmentors.adb,
5837	bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads,
5838	bindo-diagnostics.adb, bindo-diagnostics.ads,
5839	bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb,
5840	bindo-graphs.ads, bindo-units.adb, bindo-units.ads,
5841	bindo-validators.adb, bindo-validators.ads, bindo-writers.adb,
5842	bindo-writers.ads: New units.
5843	* debug.adb: Use and describe GNAT debug switches -gnatd_F and
5844	-gnatd_G.  Add GNATbind debug switches in the ranges dA .. dZ,
5845	d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and
5846	d_1 .. d_9.  Use and describe GNATbind debug switches -d_A,
5847	-d_I, -d_L, -d_N, -d_O, -d_T, and -d_V.
5848	* exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to
5849	Sem_Util.
5850	* gnatbind.adb: Add with and use clause for Bindo.  Use the new
5851	Bindo elaboration order only when -d_N is in effect.
5852	* lib-writ.adb
5853	(Column, Extra, Invoker, Kind, Line, Locations, Name, Placement,
5854	Scope, Signature, Target): New routines.
5855	(Write_ALI): Output all invocation-related data.
5856	(Write_Invocation_Graph): New routine.
5857	* lib-writ.ads: Document the invocation graph ALI line.
5858	* namet.adb, namet.ads (Present): New routines.
5859	* sem_ch8.adb (Find_Direct_Name): Capture the status of
5860	elaboration checks and warnings of an identifier.
5861	(Find_Expanded_Name): Capture the status of elaboration checks
5862	and warnings of an expanded name.
5863	* sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure
5864	that invocation graph-related data within the body of the main
5865	unit is encoded in the ALI file.
5866	(Analyze_Generic_Subprogram_Declaration): Ensure that invocation
5867	graph-related data within the body of the main unit is encoded
5868	in the ALI file.
5869	(Analyze_Package_Instantiation): Perform minimal decoration of
5870	the instance entity.
5871	(Analyze_Subprogram_Instantiation): Perform minimal decoration
5872	of the instance entity.
5873	* sem_elab.adb: Perform heavy refactoring of all code. The unit
5874	is now split into "services" which specialize in one area of ABE
5875	checks.  Add processing in order to capture invocation-graph
5876	related attributes of the main unit, and encode them in the ALI
5877	file.  The Processing phase can now operate in multiple modes,
5878	all described by type Processing_Kind.  Scenarios and targets
5879	are now distinct at the higher level, and carry their own
5880	representations. This eliminates the need to constantly
5881	recompute their attributes, and offers the various processors a
5882	uniform interface.  The various initial states of the Processing
5883	phase are now encoded using type Processing_In_State, and
5884	xxx_State constants.
5885	* sem_elab.ads: Update the literals of type
5886	Enclosing_Level_Kind.  Add Inline pragmas on several routines.
5887	* sem_prag.adb (Process_Inline): Ensure that invocation
5888	graph-related data within the body of the main unit is encoded
5889	in the ALI file.
5890	* sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit):
5891	Code clean up.
5892	(Exceptions_OK): Relocated from Sem_Util.
5893	(Mark_Save_Invocation_Graph_Of_Body): New routine.
5894	* sem_util.ads (Exceptions_OK): Relocated from Sem_Util.
5895	(Mark_Save_Invocation_Graph_Of_Body): New routine.
5896	* sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to
5897	N_Variable_Reference_Marker.
5898	(Is_Elaboration_Warnings_OK_Node): Now applicable to
5899	N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
5900	(Is_Read): Use Flag4.
5901	(Is_SPARK_Mode_On_Node): New applicable to
5902	N_Variable_Reference_Marker.
5903	(Is_Write): Use Flag5.
5904	(Save_Invocation_Graph_Of_Body): New routine.
5905	(Set_Is_Elaboration_Checks_OK_Node): Now applicable to
5906	N_Variable_Reference_Marker.
5907	(Set_Is_Elaboration_Warnings_OK_Node): Now applicable to
5908	N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker.
5909	(Set_Is_SPARK_Mode_On_Node): New applicable to
5910	N_Variable_Reference_Marker.
5911	(Set_Save_Invocation_Graph_Of_Body): New routine.
5912	* sinfo.ads: Update the documentation of attributes
5913	Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node,
5914	Is_SPARK_Mode_On_Node.  Update the flag usage of attributes
5915	Is_Read, Is_Write.  Add attribute Save_Invocation_Graph_Of_Body
5916	and update its occurrence in nodes.
5917	(Save_Invocation_Graph_Of_Body): New routine along with pragma
5918	Inline.
5919	(Set_Save_Invocation_Graph_Of_Body): New routine along with
5920	pragma Inline.
5921	* switch-b.adb (Scan_Binder_Switches): Refactor the scanning of
5922	debug switches.
5923	(Scan_Debug_Switches): New routine.
5924	* libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine.
5925	* libgnat/g-graphs.adb (Associate_Vertices): Update the use of
5926	Component_Vertex_Iterator.
5927	(Contains_Component, Contains_Edge, Contains_Vertex, Has_Next):
5928	Reimplemented.
5929	(Iterate_Component_Vertices): New routine.
5930	(Iterate_Vertices): Removed.
5931	(Next): Update the parameter profile.
5932	(Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
5933	routines.
5934	* libgnat/g-graphs.ads: Update the initialization of
5935	No_Component.  Add type Component_Vertex_Iterator.  Remove type
5936	Vertex_Iterator.
5937	(Has_Next): Add new versions and remove old ones.
5938	(Iterate_Component_Vertices): New routine.
5939	(Iterate_Vertices): Removed.
5940	(Next): Add new versions and remove old ones.
5941	(Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New
5942	routines.
5943	* libgnat/g-sets.adb (Contains): Reimplemented.
5944	* gcc-interface/Make-lang.in (GNATBIND_OBJS): Add
5945	GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units.
5946	* rtsfind.ads: Remove extra space.
5947
59482019-07-03  Yannick Moy  <moy@adacore.com>
5949
5950	* sem_spark.adb: Add support for locally borrowing and observing
5951	a path.
5952	(Get_Root_Object): Add parameter Through_Traversal to denote
5953	when we are interesting in getting to the traversed parameter.
5954	(Is_Prefix_Or_Almost): New function to support detection of
5955	illegal access to borrowed or observed paths.
5956	(Check_Pragma): Add analysis of assertion pragmas.
5957
59582019-07-03  Ed Schonberg  <schonberg@adacore.com>
5959
5960	* sem_ch13.adb (Build_Predicate_Functions): In a generic context
5961	we do not build the bodies of predicate fuctions, but the
5962	expression in a static predicate must be elaborated to allow
5963	case coverage checking within the generic unit.
5964	(Build_Discrete_Static_Predicate): In a generic context, return
5965	without building function body once the
5966	Static_Discrete_Predicate expression for the type has been
5967	constructed.
5968
59692019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>
5970
5971	* bindgen.adb, inline.adb, layout.adb, sem_ch12.adb,
5972	sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting.
5973
59742019-07-03  Bob Duff  <duff@adacore.com>
5975
5976	* par-ch3.adb (P_Defining_Identifier): Call
5977	Check_Defining_Identifier_Casing.
5978	* style.ads, styleg.ads, styleg.adb
5979	(Check_Defining_Identifier_Casing): New procedure to check for
5980	mixed-case defining identifiers.
5981	* stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New
5982	flag for checking for mixed-case defining identifiers.
5983	* doc/gnat_ugn/building_executable_programs_with_gnat.rst:
5984	Document new feature.
5985	* gnat_ugn.texi: Regenerate.
5986
59872019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
5988
5989	* doc/gnat_ugn/building_executable_programs_with_gnat.rst
5990	(Warning message control): Document that -gnatw.z/Z apply to
5991	array types.
5992	* freeze.adb (Freeze_Entity): Give -gnatw.z warning for array
5993	types as well, but not if the specified alignment is the minimum
5994	one.
5995	* gnat_ugn.texi: Regenerate.
5996
59972019-07-03  Bob Duff  <duff@adacore.com>
5998
5999	* einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid"
6000	correctly.
6001
60022019-07-03  Ed Schonberg  <schonberg@adacore.com>
6003
6004	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error
6005	message on attribute applied to a renaming when the renamed
6006	object is an aggregate (from code reading).
6007	(Check_Aspect_At_End_Of_Declarations): In a generic context
6008	where freeze nodes are not generated, the original expression
6009	for an aspect may need to be analyzed to precent spurious
6010	conformance errors when compared with the expression that is
6011	anakyzed at the end of the current declarative list.
6012
60132019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6014
6015	* layout.adb (Layout_Type): Do not set the component size of an
6016	array with a scalar component if the component type is
6017	overaligned.
6018
60192019-07-03  Ed Schonberg  <schonberg@adacore.com>
6020
6021	* inline.adb (Make_Loop_Labels_Unique): New procedure to modify
6022	the source code of subprograms that are inlined by the
6023	front-end, to prevent accidental duplication between loop labels
6024	in the inlined code and the code surrounding the inlined call.
6025
60262019-07-03  Hristian Kirtchev  <kirtchev@adacore.com>
6027
6028	* doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update
6029	the section on resolving elaboration circularities to eliminate
6030	certain combinations of switches which together do not produce
6031	the desired effect and confuse users.
6032	* gnat_ugn.texi: Regenerate.
6033
60342019-07-03  Arnaud Charlet  <charlet@adacore.com>
6035
6036	* bindgen.adb (Gen_Main): Disable generation of reference to
6037	Ada_Main_Program_Name for CCG.
6038	* bindusg.adb (Display): Add -G to the command-line usage for
6039	gnatbind.
6040	* opt.ads (Generate_C_Code): Update comment.
6041	* switch-b.adb (Scan_Binder_Switches): Add handling for -G.
6042
60432019-07-03  Arnaud Charlet  <charlet@adacore.com>
6044
6045	* sem_ch7.adb (Has_Referencer): Do not consider inlined
6046	subprograms when generating C code, which allows us to generate
6047	static inline subprograms.
6048
60492019-07-03  Justin Squirek  <squirek@adacore.com>
6050
6051	* sem_ch6.adb (Check_Conformance): Add expression checking for
6052	constant modifiers in anonymous access types (in addition to
6053	"non-null" types) so that they are considered "matching" for
6054	subsequent conformance tests.
6055
60562019-07-03  Arnaud Charlet  <charlet@adacore.com>
6057
6058	* doc/gnat_rm/standard_and_implementation_defined_restrictions.rst:
6059	Clarify wording on No_Multiple_Elaboration.
6060	* gnat_rm.texi: Regenerate.
6061
60622019-07-03  Ed Schonberg  <schonberg@adacore.com>
6063
6064	* sem_ch8.adb (Find_Selected_Component): If the prefix is the
6065	current instance of a type or subtype, complete the resolution
6066	of the name by finding the component of the type denoted by the
6067	selector name.
6068
60692019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
6070
6071	* doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C):
6072	Document that boolean types with convention C now map to C99 bool.
6073	* gnat_rm.texi: Regenerate.
6074
60752019-07-03  Javier Miranda  <miranda@adacore.com>
6076
6077	* exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup:
6078	removing code that it is now never executed in the CCG compiler
6079	(dead code).
6080
60812019-07-02  Iain Sandoe  <iain@sandoe.co.uk>
6082
6083	* libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for
6084	PPC Darwin.
6085
60862019-07-01  Ed Schonberg  <schonberg@adacore.com>
6087
6088	* sem_ch12.adb (Is_Defaulted): New predicate in
6089	Check_Formal_Package_Intance, to skip the conformance of checks
6090	on parameters of a formal package that are defaulted,
6091
60922019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6093
6094	* checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb,
6095	sem_prag.adb, sem_spark.adb: Minor reformatting.
6096
60972019-07-01  Ed Schonberg  <schonberg@adacore.com>
6098
6099	* sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix
6100	of attribute to be an attribute reference of a discrete type.
6101
61022019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
6103
6104	* sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up
6105	handling of Has_Pragma_Inline_Always and deal with
6106	Has_Pragma_No_Inline.
6107
61082019-07-01  Ed Schonberg  <schonberg@adacore.com>
6109
6110	* sem_ch3.adb (Build_Derived_Record_Type): If the parent type is
6111	declared as a subtype of a private type with an inherited
6112	discriminant constraint, its generated full base appears as a
6113	record subtype, so we need to retrieve its oen base type so that
6114	the inherited constraint can be applied to it.
6115
61162019-07-01  Yannick Moy  <moy@adacore.com>
6117
6118	* sem_spark.adb: Completely rework the algorithm for ownership
6119	checking, as the rules in SPARK RM have changed a lot.
6120	* sem_spark.ads: Update comments.
6121
61222019-07-01  Dmitriy Anisimkov  <anisimko@adacore.com>
6123
6124	* gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in
6125	the sockaddr_in structure to determine the existence of length field
6126	before the sin_family.
6127
61282019-07-01  Ed Schonberg  <schonberg@adacore.com>
6129
6130	* sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only
6131	applies to entities with run-time addresses, not to types.
6132
61332019-07-01  Piotr Trojanek  <trojanek@adacore.com>
6134
6135	* einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update
6136	references to the SPARK RM after the removal of Rule 7.1.4(5).
6137
61382019-07-01  Piotr Trojanek  <trojanek@adacore.com>
6139
6140	* sysdep.c: Cleanup references to LynuxWorks in docs and
6141	comments.
6142
61432019-07-01  Ed Schonberg  <schonberg@adacore.com>
6144
6145	* checks.adb (Insert_Valid_Check): Do not apply validity check
6146	to variable declared within a protected object that uses the
6147	Lock_Free implementation, to prevent unwarranted constant
6148	folding, because entities within such an object msut be treated
6149	as volatile.
6150
61512019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
6152
6153	* exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline.
6154
61552019-07-01  Ed Schonberg  <schonberg@adacore.com>
6156
6157	* exp_unst.adb (Visit_Node, Check_Static_Type): Improve the
6158	handling of private and incomplete types whose full view is an
6159	access type, to detect additional uplevel references in dynamic
6160	bounds. This is relevant to N_Free_Statement among others that
6161	manipulate types whose full viww may be an access type.
6162
61632019-07-01  Pat Rogers  <rogers@adacore.com>
6164
6165	* doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct
6166	size indicated for R as a component of an array.
6167	* gnat_rm.texi: Regenerate.
6168
61692019-07-01  Justin Squirek  <squirek@adacore.com>
6170
6171	* libgnat/s-win32.ads: Add definition for ULONG, modify
6172	OVERLAPPED type, and add appropriate pragmas.
6173
61742019-07-01  Bob Duff  <duff@adacore.com>
6175
6176	* gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is
6177	ignored-ghost.
6178
61792019-07-01  Yannick Moy  <moy@adacore.com>
6180
6181	* sem_ch4.adb (Operator_Check): Refine error message.
6182
61832019-07-01  Piotr Trojanek  <trojanek@adacore.com>
6184
6185	* libgnat/a-calend.ads: Revert "Global => null" contracts on
6186	non-pure routines.
6187
61882019-07-01  Piotr Trojanek  <trojanek@adacore.com>
6189
6190	* exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments:
6191	componant -> component.
6192
61932019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6194
6195	* libgnat/g-graphs.adb: Use type Directed_Graph rather than
6196	Instance in various routines.
6197	* libgnat/g-graphs.ads: Change type Instance to Directed_Graph.
6198	Update various routines that mention the type.
6199
62002019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6201
6202	* libgnat/g-sets.adb: Use type Membership_Set rathern than
6203	Instance in various routines.
6204	* libgnat/g-sets.ads: Change type Instance to Membership_Set.
6205	Update various routines that mention the type.
6206
62072019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6208
6209	* libgnat/g-lists.adb: Use type Doubly_Linked_List rather than
6210	Instance in various routines.
6211	* libgnat/g-lists.ads: Change type Instance to
6212	Doubly_Linked_List. Update various routines that mention the
6213	type.
6214
62152019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6216
6217	* libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than
6218	Instance in various routines.
6219	* libgnat/g-dynhta.ads: Change type Instance to
6220	Dynamic_Hash_Table. Update various routines that mention the
6221	type.
6222
62232019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6224
6225	* exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb,
6226	sem_util.adb, uintp.adb, uintp.ads: Minor reformatting.
6227
62282019-07-01  Javier Miranda  <miranda@adacore.com>
6229
6230	* exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of
6231	'Min/'Max on integer, enumeration, fixed point and floating
6232	point types since the CCG backend now provides in file
6233	standard.h routines to support it.
6234
62352019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6236
6237	* impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95.
6238	* Makefile.rtl, gcc-interface/Make-lang.in: Register unit
6239	GNAT.Graphs.
6240	* libgnat/g-dynhta.adb: Various minor cleanups (use Present
6241	rather than direct comparisons).
6242	(Delete): Reimplement to use Delete_Node.
6243	(Delete_Node): New routine.
6244	(Destroy_Bucket): Invoke the provided destructor.
6245	(Present): New routines.
6246	* libgnat/g-dynhta.ads: Add new generic formal Destroy_Value.
6247	Use better names for the components of iterators.
6248	* libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit.
6249	* libgnat/g-lists.adb: Various minor cleanups (use Present
6250	rather than direct comparisons).
6251	(Delete_Node): Invoke the provided destructor.
6252	(Present): New routine.
6253	* libgnat/g-lists.ads: Add new generic formal Destroy_Element.
6254	Use better names for the components of iterators.
6255	(Present): New routine.
6256	* libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset,
6257	Reset): New routines.
6258
62592019-07-01  Dmitriy Anisimkov  <anisimko@adacore.com>
6260
6261	* libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6
6262	is not defined.
6263
62642019-07-01  Ed Schonberg  <schonberg@adacore.com>
6265
6266	* exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value):
6267	Resolve result of call to Get_Simple_Init_Val, which may be a
6268	conversion of a literal.
6269
62702019-07-01  Hristian Kirtchev  <kirtchev@adacore.com>
6271
6272	* freeze.adb (Freeze_Expression): Remove the horrible useless
6273	name hiding of N. Insert the freeze nodes generated by the
6274	expression prior to the expression when the nearest enclosing
6275	scope is transient.
6276
62772019-07-01  Pierre-Marie de Rodat  <derodat@adacore.com>
6278
6279	* doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix
6280	formatting issues in the -gnatR section.
6281	* gnat_ugn.texi: Regenerate.
6282
62832019-06-30  Iain Sandoe  <iain@sandoe.co.uk>
6284
6285	* gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches.
6286	Push -shared-libgcc explicitly, when it is the target default (unless
6287	overidden by the static flag).
6288	When the user has put an instance of shared/static-libgcc do not push
6289	a duplicate of this.
6290
62912019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6292
6293	* gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED,
6294	and tweak comment on the assertion about the scopes of Itypes.  Do not
6295	skip the regular processing for Itypes that are E_Record_Subtype with
6296	a Cloned_Subtype.  Get the Cloned_Subtype for every E_Record_Subtype
6297	if the type is dummy and hasn't got its own freeze node.
6298	<E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any.
6299	<E_Access_Subtype>: Save again the DECL of the equivalent type.
6300	(Gigi_Equivalent_Type) <E_Access_Subtype>: New case.
6301
63022019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6303
6304	* gcc-interface/utils.c (unchecked_convert): Tweak comment.  Only skip
6305	dereferences when padding to have the same size on both sides.  Do it
6306	for destination types with self-referential size too.
6307
63082019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6309
6310	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the
6311	type requires strict alignment, then set the RM size to the type size.
6312	Rework handling of alignment and sizes of tagged types in ASIS mode.
6313	(validate_size): Rename local variable and remove special handling for
6314	strict-alignment types.
6315	* gcc-interface/utils.c (finish_record_type): Constify local variables
6316	and use properly typed constants.
6317
63182019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6319
6320	* gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for
6321	fields requiring strict alignment, add explicit test on Storage_Unit
6322	for position and size, and mention type alignment for position.
6323
63242019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6325
6326	* gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on
6327	the main variant of a type, if any.
6328
63292019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6330
6331	* gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add
6332	missing guard for the presence of TYPE_CANONICAL.
6333	(set_reverse_storage_order_on_array_type): Likewise.
6334
63352019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
6336
6337	* gcc-interface/gigi.h (make_packable_type): Remove default value.
6338	(value_factor_p): Tweak prototype.
6339	* gcc-interface/decl.c (gnat_to_gnu_entity): Add comment.
6340	(gnat_to_gnu_component_type): Likewise.
6341	(gnat_to_gnu_field): Likewise.  Fetch the position of the field earlier
6342	and simplify the condition under which the type is packed.  Declare
6343 	local variable is_bitfield.  Pass 1 as max_align to make_packable_type
6344	if it is set to true.
6345	(copy_and_substitute_in_layout): Pass 0 to make_packable_type.
6346	* gcc-interface/utils.c (make_packable_array_type): New function.
6347	(make_packable_type): Use it to rewrite the type of array field.
6348	(maybe_pad_type): Pass align parameter to make_packable_type.
6349	(create_field_decl): Minor tweaks.
6350	(value_factor_p): Assert that FACTOR is a power of 2 and replace the
6351	modulo computation by a masking operation.
6352
63532019-06-25  Eric Botcazou  <ebotcazou@adacore.com>
6354
6355	* gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test
6356	in previous change.
6357	* gcc-interface/gigi.h (maybe_character_type): Fix formatting.
6358	(maybe_character_value): Likewise.
6359
63602019-06-24  Jan Hubicka  <jh@suse.cz>
6361
6362	* gcc-interface/decl.c (gnat_to_gnu_entity): Check that
6363	type is array or integer prior checking string flag.
6364	* gcc-interface/gigi.h (maybe_character_type): Likewise.
6365	(maybe_character_value): Likewise.
6366
63672019-06-24  Martin Sebor  <msebor@redhat.com>
6368
6369	* gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute
6370	name.
6371
63722019-06-18  Arnaud Charlet  <charlet@adacore.com>
6373
6374	PR ada/80590
6375	* sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation
6376	during normal processing.
6377
63782019-06-17  Arnaud Charlet  <charlet@adacore.com>
6379
6380	PR ada/80590
6381	* exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two
6382	conditions to avoid a unnecessary exception propagation in the default
6383	case.
6384
63852019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6386
6387	* gcc-interface/utils.c (handle_stack_protect_attribute): Move around.
6388
63892019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6390
6391	* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
6392	Document additional optional parameters.
6393	* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
6394	more than one optional parameter.
6395	* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
6396	the list of supported pragmas.  Simplify the handling of parameters
6397	and add support for more than one optional parameter.
6398	* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
6399	(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
6400	used, cold, hot, target and target_clones.
6401	(begin_subprog_body): Do not create the RTL for the subprogram here.
6402	(handle_noicf_attribute): New static function.
6403	(handle_noipa_attribute): Likewise.
6404	(handle_flatten_attribute): Likewise.
6405	(handle_used_attribute): Likewise.
6406	(handle_cold_attribute): Likewise.
6407	(handle_hot_attribute): Likewise.
6408	(handle_target_attribute): Likewise.
6409	(handle_target_clones_attribute): Likewise.
6410
64112019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6412
6413	* gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0
6414	for 'Size too.
6415	(Identifier_to_gnu): Use the actual subtype for a reference to a
6416	packed array in a return statement.
6417	(Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from
6418	the prefix in every case.
6419
64202019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6421
6422	* gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on
6423	Backend_Overflow_Checks_On_Target and rework comments.
6424
64252019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6426
6427	* gcc-interface/trans.c (walk_nesting_tree): New static function.
6428	(finalize_nrv): Use it to walk the entire nesting tree.
6429
64302019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6431
6432	* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove
6433	obsolete test on Is_For_Access_Subtype.
6434
64352019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6436
6437	* gcc-interface/decl.c (components_to_record): Set a name on the type
6438	created for the REP part, if any.
6439	* gcc-interface/utils.c (finish_record_type): Only take the maximum
6440	when merging sizes for a variant part at offset 0.
6441	(merge_sizes): Rename has_rep parameter into max.
6442
64432019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6444
6445	* gcc-interface/utils.c (gnat_internal_attribute_table): Add support
6446	for stack_protect attribute.
6447	(handle_stack_protect_attribute): New static function.
6448
64492019-05-28  Eric Botcazou  <ebotcazou@adacore.com>
6450
6451	* gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return
6452	false if the internal builtin uses a variable list.
6453
64542019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6455
6456	* gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary
6457	created out of addressability concerns if it's for the _Init parameter
6458	of an initialization procedure.
6459
64602019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6461
6462	* gcc-interface/ada-builtin-types.def: New file.
6463	* gcc-interface/ada-builtins.def: Likewise.
6464	* gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro.
6465	(BUILT_IN_UNLIKELY): Likewise.
6466	* gcc-interface/trans.c (independent_iterations_p): Initialize the
6467	auto-vector to 16 elements.
6468	(Call_to_gnu): Remove local variable and change the vector of actual
6469	parameters to an auto-vector.  Do not convert actual parameters to
6470	the argument type for front-end built-in functions.  Add support for
6471	front-end built-in functions.
6472	(build_noreturn_cond): Use internal instead of built-in function.
6473	* gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def
6474	(install_builtin_function_types): Likewise.
6475	(install_builtin_functions): Include ada-builtins.def first.
6476
64772019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6478
6479	* gcc-interface/utils.c (maybe_pad_type): Issue the warning for the
6480	specific case of component types preferably.
6481
64822019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6483
6484	* gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks.
6485	(gnat_to_gnu): Do not convert the result if it is a reference to an
6486	unconstrained array used as the prefix of an attribute reference that
6487	requires an lvalue.
6488
64892019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6490
6491	* gcc-interface/trans.c (Gigi_Types_Compatible): New predicate.
6492	(Identifier_to_gnu): Use it to assert that the type of the identifier
6493	and that of its entity are compatible for gigi.  Rename a couple of
6494	local variables and separate the processing of the result type.
6495
64962019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6497
6498	* gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when
6499	putting back an intermediate conversion the type of the actuals.
6500
65012019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
6502
6503	* gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the
6504	count to the unsigned version of its base type before proceeding.
6505
65062019-05-16  Martin Sebor  <msebor@redhat.com>
6507
6508	* gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
6509	reserved names.
6510
65112019-05-08  Arnaud Charlet  <charlet@adacore.com>
6512
6513	* standard.ads.h: New file.
6514
65152019-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
6516
6517	* gcc-interface/Makefile.in (install-gcc-specs): Use foreach.
6518	Honor DESTDIR.
6519
65202019-04-29  Michael K. Darling  <darlingm@gmail.com>
6521
6522	* gnatvsn.ads: Bump Library_Version to 10.
6523
65242019-04-24  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6525	    Bernd Edlinger  <bernd.edlinger@hotmail.de>
6526	    Jakub Jelinek  <jakub@redhat.com>
6527
6528	PR target/89093
6529	* raise-gcc.c (TARGET_ATTRIBUTE): Define.
6530	(continue_unwind, personality_body, PERSONALITY_FUNCTION): Add
6531	TARGET_ATTRIBUTE.
6532
65332019-04-07  Eric Botcazou  <ebotcazou@adacore.com>
6534
6535	* libgnat/i-cexten.ads (CFloat_128): New type.
6536
65372019-03-22  Dmitriy Anisimkov  <anisimko@adacore.com>
6538
6539	PR ada/89583
6540	* libgnat/g-socket.adb (Bind_Socket, Connect_Socket,
6541	Send_Socket): Fix the computation of structure lengths passed to
6542	low level routines.
6543	(Is_IPv6_Address): Fix the number of expected colons.
6544
65452019-03-11  Martin Liska  <mliska@suse.cz>
6546
6547	* gcc-interface/misc.c (gnat_post_options): Wrap option name in string
6548	format message and fix GNU coding style.
6549
65502019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
6551
6552	* gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak.
6553	* gcc-interface/utils.c (convert): Do not pad when doing an unchecked
6554	conversion here.  Use TREE_CONSTANT throughout the function.
6555	(unchecked_convert): Also pad if the source is a CONSTRUCTOR and the
6556	destination is a more aligned array type or a larger aggregate type,
6557	but not between original and packable versions of a type.
6558
65592019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
6560
6561	* gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an
6562	operand with VOID_TYPE.
6563
65642019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
6565
6566	* gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the
6567	entities of a package renaming another one.
6568
65692019-02-08  Eric Botcazou  <ebotcazou@adacore.com>
6570
6571	* gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on
6572	individual flag_unswitch_loops and flag_tree_loop_vectorize switches
6573	with test on global optimize switch.
6574	(Raise_Error_to_gnu): Likewise.
6575
65762019-02-07  Eric Botcazou  <ebotcazou@adacore.com>
6577
6578	* libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value.
6579
65802019-02-06  Arnaud Charlet  <charlet@adacore.com>
6581
6582	* libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads
6583
65842019-01-27  Eric Botcazou  <ebotcazou@adacore.com>
6585
6586	* repinfo.adb (List_Component_Layout): Remove superfluous space for
6587	zero-sized field.
6588	* gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro.
6589	* gcc-interface/gigi.h (create_extra_subtype): Declare.
6590	* gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise.
6591	(update_n_elem): New function.
6592	(gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes
6593	instead of doing it manually.
6594	<E_Array_Type>: Use update_n_elem to compute the maximum size.  Use the
6595 	index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE
6596	of the array to the maximum size.
6597	<E_Array_Subtype>: Create an extra subtype using the index type of the
6598	base array type for self-referential bounds.  Use update_n_elem to
6599	compute the maximum size.  Set TYPE_ARRAY_MAX_SIZE of the array to the
6600	maximum size.
6601	(gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants.
6602	* gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of
6603	the base type for an extra subtype.
6604	(gnat_type_max_size): Remove obsolete code.
6605	* gcc-interface/trans.c (Attribute_to_gnu): Minor tweak.
6606	(can_be_lower_p): Deal with pathological types.
6607	* gcc-interface/utils.c (create_extra_subtype): New function.
6608	(create_field_decl): Minor tweak.
6609	(max_size) <tcc_reference>: Compute a better value by using the extra
6610 	subtypes on the self-referential bounds.
6611	<tcc_binary>: Rewrite.  Deal with "negative value" in unsigned types.
6612	<tcc_expression>: Likewise.
6613	* gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds
6614	of the arrays upfront.  Swap only if the second length is not constant.
6615	Use comparisons on the original bounds consistently for the null tests.
6616	(build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro.
6617	(build_allocator): Minor tweak.
6618
66192019-01-27  Eric Botcazou  <ebotcazou@adacore.com>
6620
6621	* gcc-interface/decl.c (array_type_has_nonaliased_component): Return
6622	the same value for every dimension of a multidimensional array type.
6623
66242019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6625
6626	* gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the
6627	iteration scheme, if present, throughout the translation.
6628
66292019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6630
6631	* gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use
6632	DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned
6633	by a call to memset if the LHS is a DECL.
6634
66352019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6636
6637	* gcc-interface/trans.c (struct loop_info_d): Remove artificial field.
6638	(Loop_Statement_to_gnu): Do not set it.
6639
66402019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6641
6642	* gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting.
6643	(Acc_gnat_to_gnu): Likewise.
6644	(Acc_Data_to_gnu): Likewise.
6645	(Acc_Var_to_gnu): Likewise.
6646	(Acc_Reduc_to_gnu): Likewise.
6647	(Acc_Size_List_to_gnu): Likewise.
6648	(Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise.
6649	<Pragma_Acc_Data>): Likewise.
6650	(find_loop_for): Remove default value for parameters.
6651	* gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into...
6652	<N_Op_Eq>): ...this.
6653
66542019-01-26  Eric Botcazou  <ebotcazou@adacore.com>
6655
6656	* gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on
6657	the sign bit instead of on the sign of the value.
6658	<PLUS_EXPR>: Turn addition of negative constant into subtraction.
6659	<MULT_EXPR>: Add test for degenerate case.
6660	<BIT_AND_EXPR>: Simplify.
6661
66622019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
6663
6664	* s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS.
6665
66662019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
6667
6668	PR other/16615
6669	* exp_ch11.adb: Change "can not" to "cannot".
6670	* sem_ch4.adb: Likewise.
6671
66722019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
6673
6674	PR other/16615
6675	* exp_ch9.adb: Mechanically replace "can not" with "cannot".
6676	* libgnat/s-regpat.ads: Likewise.
6677	* par-ch4.adb: Likewise.
6678	* set_targ.adb: Likewise.
6679	* types.ads: Likewise.
6680
66812019-01-08  Justin Squirek  <squirek@adacore.com>
6682
6683	Revert:
6684	2018-07-31  Justin Squirek  <squirek@adacore.com>
6685
6686	* lib-writ.adb (Write_With_Lines): Modfiy the generation
6687	of dependencies within ali files so that source unit
6688	bodies are properly listed even if said bodies are
6689	missing.  Perform legacy behavior in GNATprove mode.
6690	* lib-writ.ads: Modify documentation to reflect current
6691	behavior.
6692
6693	and:
6694	2018-09-26  Justin Squirek  <squirek@adacore.com>
6695
6696	* lib-writ.adb, lib-writ.ads (Write_With_Lines): Add
6697	documentation and an extra conditional check for RCI
6698	units so that generated ali files will list the spec
6699	only instead of a body when a body is not found.
6700
67012019-01-04  Eric Botcazou  <ebotcazou@adacore.com>
6702
6703	* gnatvsn.ads: Bump copyright year.
6704
67052019-01-01  Jakub Jelinek  <jakub@redhat.com>
6706
6707	Update copyright years.
6708
6709 	* gnat_ugn.texi: Bump @copying's copyright year.
6710 	* gnat_rm.texi: Likewise.
6711
6712Copyright (C) 2019 Free Software Foundation, Inc.
6713
6714Copying and distribution of this file, with or without modification,
6715are permitted in any medium without royalty provided the copyright
6716notice and this notice are preserved.
6717