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